浏览器刷新时删除默认控制器名称(CodeigniterPHP / Nginx问题?)

时间:2012-12-17 22:55:24

标签: php codeigniter nginx

对于我的codeigniter应用程序中除默认控制器main.php以外的所有页面,当我刷新浏览器时,网址不会像预期的那样受到影响。

但是,当我在“http:// localhost / main”刷新浏览器时,main部分将从网址中删除。所以浏览器栏只显示“http:// localhost”。

完全不知道从哪里开始,但只是想知道是否有人在此之前遇到过这个......?

这就是我认为可能是我的nginx.conf的相关部分(如果Nginx是问题)。

if ($request_uri ~* ^(/main(/index)?|/index(.php)?)/?$)
{
    rewrite ^(.*)$ / permanent;  
}

请注意,将括号中的代码更改为:

rewrite ^(.*)$ /main permanent; 

会产生错误消息The webpage at http://localhost/main has resulted in too many redirects.

2 个答案:

答案 0 :(得分:0)

好的,我回答了自己的问题。简单地注释掉我展示的nginx.conf代码可以解决问题。

所以这样做(says Bo Jackson):

#if ($request_uri ~* ^(/main(/index)?|/index(.php)?)/?$)
#{
#  rewrite ^(.*)$ / permanent;  
#}

答案 1 :(得分:0)

如果您尝试将请求路由到index.php引导程序,以便可以从CodeIgniter中的url中删除index.php,您可能应该尝试使用它:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}