RedirectMatch 301仅用于html文件

时间:2010-03-16 11:17:53

标签: mod-rewrite http-status-code-301

我需要为我的网站以.html结尾的所有网页执行大量301重定向。我希望将所有旧的.html文件移动到子文件夹ir。

RedirectMatch 301 (.*)\.html$ http://www.domain.com/folder/$1.html

当我添加此内容并刷新浏览器时,我会在网址后获得大量的文件夹/文件夹/文件夹,即

domain.com/folder//folder/folder/folder .....

任何想法可能出错?

谢谢你能提供帮助

2 个答案:

答案 0 :(得分:1)

问题是,'folder / foo.html'也匹配RedirectMatch的条件,并且再次追加文件夹(并再次附加......)

因此你可能需要这样的东西(未经测试):

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/folder/
RewriteRule (.*)\.html$ /folder/$1.html [R=301,L]

RewriteCond应检查URI是否不以/文件夹开头,只有满足此条件时,才会检查RewriteRule。

不幸的是,我目前还没有任何Apache安装可用于测试这些东西,因此您可能需要自己尝试。但我希望你有这个主意。

答案 1 :(得分:0)

如果旧的html文件位于root中,我建议如下:

RedirectMatch 301 ^([^/]+)\.html$ http://www.domain.com/folder/$1.html