codeigniter 去除index.php (nginx,apache) 通用方法

2021/09/03
.htaccess文件配置
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond $1 !^(index\.php|assets|system|robots\.txt)
  RewriteRule ^(.*)$ /index.php/$1 [L,QSA]
</IfModule>

简要说明:关键是这句:rewirteCond ,assets是目录。


apache的配置:
<VirtualHost *:80>
    ServerAdmin jjj@163.com
    DocumentRoot "d:/mywork/m"

    ServerName m.mimi.com

    <Directory "d:/mywork/m">    // 这里是项目的目录
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Order allow,deny
        allow from all
   </Directory>
</VirtualHost>

简要说明:

ServerAdmin表示错误信息地址,如果发生错误发送到这个邮箱地址。

Indexes 的作用就是当该目录下没有 index.html 文件时,就显示目录结构,去掉 Indexes,Apache 就不会显示该目录的列表了。

Nginx配置几句

location /
        {
            index index.php;
            if (!-e $request_filename) {
                    rewrite ^/(.*)$ /index.php?$1 last;
                    break;
            }
        }