求助:CI放在子目录,首页能打开,其他页面都是404
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
如果网站默认首页换成wx/index.php,index.php,index.html,wx子目录所有页面能正常打开,tour子目录也是首页能打开,其他页面是404 兄弟,你的CI版本太旧了。建议更换最新的CI3或者CI4 研究好久发现
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;
}
页:
[1]