这是一个让人很郁闷的问题,用CodeIgniter 3.1.7搭建好一个PHP程序会,发现除了首页,其它controller都无法访问。 这个原因是服务器不支持PATH_INFO导致的,该变量用来提供搜索引擎友好的 URL。解决这个原因最快的办法就是修改application/config/config.php文件。 将里面的
$config['index_page'] = "index.php";
改成这样
$config['index_page'] = "index.php?";
如果你有权限修改Nginx服务器配置,那么就不用改config.php这文件,直接在Nginx里面加入这样的配置就可以了
location / {
root /home/lemontea/tjzwork/workspace/phpwork/p2s.top;
index index.php index.htm index.html;
if (!-e $$request_filename) {
rewrite ^/(.*)$ /index.php?$1 last;
break;
}
}
留意上面的if
如果是apache服务器,请在.htaccess文件中这样写
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
配置好了你就可以用下面方式访问你的controller了
如:
127.0.0.1/thread/1
127.0.0.1/index.php/thread/1
127.0.0.1/index.php?/thread/1