在nginx下如何去除ci框架url中的index.php,下面是一个例子,使用


ci框架默认的url规则中带有应用的入口文件,例如:

example.com/index.PHP/news/article/my_article

在以上URL中带有入口文件index.php,这样的URL规则对搜索引擎来说是不友好的,那么如何去除这个index.php呢?

apache环境下:

通过 .htaccess 文件来设置一些简单的规则删除它。下面是一个例子,使用“negative”方法将非指定内容进行重定向:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

如果你的项目不在根目录请把上面这一句改为:RewriteRule ^(.*)$ index.php/$1 [L]

在上面的例子中,可以实现任何非 index.php、images 和 robots.txt 的 HTTP 请求都被指向 index.php。

Nginx环境下:

修改nginx配置文件,在SERVER段中添加如下代码:

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

相关内容