我需要为我的网站以.html结尾的所有网页执行大量301重定向。我希望将所有旧的.html文件移动到子文件夹ir。
RedirectMatch 301 (.*)\.html$ http://www.domain.com/folder/$1.html
当我添加此内容并刷新浏览器时,我会在网址后获得大量的文件夹/文件夹/文件夹,即
domain.com/folder//folder/folder/folder .....
任何想法可能出错?
谢谢你能提供帮助
答案 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