我的域名中有两个已重命名的文件夹。我想在我的.htaccess文件中添加一些重定向脚本,以便使用旧链接的用户到达正确的位置。我尝试使用;
RedirectMatch 301 /oldfolder/subsection-01/(.*) example.com/new-folder/subsection/$1
RedirectMatch 301 /oldfolder/(.*) example.com/new-folder/$1
他们都工作了!但是我的所有图像链接都断了,因为它们在服务器上的文件路径有以下路径:
example.com/sites/default/files/**oldfolder**/filename.jpg
我一直在寻找一种方法来排除对.jpg文件的引用,或者确保只包含域文件夹的文件夹,例如'example.com/oldfolder'被采取行动但无济于事。
我尝试了以下技巧;
RedirectMatch 301 %{HTTP_HOST} example\.com/oldfolder/subsection-01/(.*) example.com/new-folder/subsection/$1
RedirectMatch 301 example.com/oldfolder/(.*) example.com/new-folder/$1
RewriteRule %{HTTP_HOST}.example\.com/oldfolder/subsection-01/$ example.com/new-folder/subsection/$1 [L]
RewriteRule %{HTTP_HOST} ^www\.example\.com/oldfolder/(.*) example.com/new-folder/$1 [R=301,L]
但他们要么导致服务器501错误,要么根本不做任何事情。
我希望社区能提供任何有用的帮助。
感谢。
答案 0 :(得分:0)
在正则表达式中使用启动锚点,以确保您的模式仅在启动时匹配:
RedirectMatch 301 ^/oldfolder/subsection-01/(.*) http://example.com/new-folder/subsection/$1
RedirectMatch 301 ^/oldfolder/(.*) http://example.com/new-folder/$1