htaccess多个301重定向

时间:2013-10-27 12:28:21

标签: .htaccess redirect

我正在寻找一些帮助,在我的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域的子目录中? (我试过两个,结果相同)。

请帮忙!提前谢谢。

1 个答案:

答案 0 :(得分:6)

抱歉,我刚刚解决了这个问题。我从每个规则中删除了基本URL,现在它可以正常工作。即:

Redirect 301 /foo/bar.php /foo/bar

而不是:

Redirect 301 http://mysite.com/foo/bar.php http://mysite.com/foo/bar

不确定为什么......需要阅读。