用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1156|回复: 3
收起左侧

[URL] 求助:CI放在子目录,首页能打开,其他页面都是404

[复制链接]
发表于 2021-5-8 11:24:42 | 显示全部楼层 |阅读模式
CI放在子目录,首页能打开,其他页面都是404,
同样是放在tour子目录的所有页面是可以正常打开的,http://www.99lvxing.cn/tour/

求高人指点

系统:系统版本wdCP v3.3.11

CI版本:
define('CI_VERSION', '2.2.0');

安装目录:public_html/wx
http://www.99lvxing.cn/wx/
默认首页

tour/index.php,index.php,index.html


wx目录 .htaccess文件:
RewriteEngine on
RewriteBase /wx/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /wx/index.php/$1 [L]



 楼主| 发表于 2021-5-8 11:29:57 | 显示全部楼层
如果网站默认首页换成wx/index.php,index.php,index.html,wx子目录所有页面能正常打开,tour子目录也是首页能打开,其他页面是404
发表于 2021-5-13 10:31:41 | 显示全部楼层
兄弟,你的CI版本太旧了。建议更换最新的CI3或者CI4
 楼主| 发表于 2021-5-24 10:29:57 | 显示全部楼层
研究好久发现
index.php/welcome/index 这种形式不能访问,改用 index.php?/welcome/index可以访问

【原因】:原因是默认Nginx不支持pathinfo这种格式,当你浏览器里输入http:\xxx.xxx.com\index.php\pages\home的时候,Nginx会认为你要访问index.php目录下的pages文件夹里的home,所以会报404 not found错误

【解决办法】
修改conf之前有个问题要明确,那就是CI的根目录 是不是web的root目录,如果是的话,如下修改:
只需要增加如下即可,在location ~ .php$之前增加一段:

//这个意思是,如果你浏览器里要访问的文件不存在时,会自动路由至web根目录下的index.php进行访问。
if (!-e $request_filename) {
     rewrite ^.*$ /index.php last;
}

我的ci在子目录
if (!-e $request_filename) {
     rewrite ^.*$ /XXX/index.php last;
}

本版积分规则