PHP CodeIgniter 404或者全部跳转到默认页面问题解决

这是一个让人很郁闷的问题,用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

本博客采用 知识共享署名-禁止演绎 4.0 国际许可协议 进行许可

本文标题:PHP CodeIgniter 404或者全部跳转到默认页面问题解决

本文地址:https://jizhong.plus/post/2018/01/php-codeigniter-path.html