我正在寻找一些帮助,在我的htaccess文件中设置一些重定向规则。我已将网站切换为在Codeigniter上运行,基本上所有以.php结尾的页面现在只删除了该结尾,即www.mysite.com/foo/bar.php
现在是www.mysite.com/foo/bar
我试过像这样列出重定向:
Redirect 301 http://mysite.com/foo/bar.php http://mysite.com/foo/bar
Redirect 301 http://mysite.com/foo/bar/bar.php http://mysite.com/foo/bar/bar
Redirect 301 http://mysite.com/foo/bar/foo.php http://mysite.com/foo/bar/foo
等(需要大约12条规则)。奇怪的是,它适用于第一条规则但不适用于其他规则?我没有正确列出它们吗?我读过的所有内容都告诉我这就是它的编写方式。那么我做错了什么?
可能相关的其他信息:
我的htaccess文件已包含以下代码(用于从网址中删除'index.php'):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
不确定重写之前或之后是否重要?此外,该网站是一个插件域。我不完全确定这些重写是否应该放在主站点的公共文件夹中的.htaccess文件中,或者放在addon域的子目录中? (我试过两个,结果相同)。
请帮忙!提前谢谢。
答案 0 :(得分:6)
抱歉,我刚刚解决了这个问题。我从每个规则中删除了基本URL,现在它可以正常工作。即:
Redirect 301 /foo/bar.php /foo/bar
而不是:
Redirect 301 http://mysite.com/foo/bar.php http://mysite.com/foo/bar
不确定为什么......需要阅读。