某些带有尾部斜杠的链接可以正常工作,但没有斜杠显示“Firefox中的连接已重置”错误。
某些链接没有尾部斜杠,但是WITH尾部斜杠在Firefox中显示“连接已重置”错误。
我确信编码没有错误,因为。我认为罪魁祸首是.htaccess文件。 以下是我的.htaccess文件
RewriteEngine on
RewriteBase /demo/
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
任何帮助都将受到高度赞赏。谢谢!
答案 0 :(得分:6)
我相信你的问题是缺失'?'在这一行:
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
添加此'?'直接在'index.php'之后
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
另外,根据我的经验,我会在RewriteBase上留下尾随斜杠,并将其添加到$ config ['base_url']参数中,让CI代替你工作:
$config['base_url'] = 'http://yourwebsite.com/demo/';
-instead of-
$config['base_url'] = 'http://yourwebsite.com/demo';
这是我用过CI一段时间的.htaccess设置,它对我有好处:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase / # TODO: add a folder name here if the application is not in web root
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin
ErrorDocument 404 /index.php
</IfModule>