在nginx下去掉ci框架url中的index.php

时间:2022-03-26 16:23:33

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 /{

    index index.php index.hml index.htm
if (-f $request_filename/index.php) {
rewrite (.*) $1/index.php
break;
}
if (!-e $request_filename) {
rewrite (.*) /index.php;
}
}