首页 > 解决方案 > .htaccess 重写规则以包含文件

问题描述

我试图找出将所有 url 重定向到文件从一个域到另一个域的正确规则:

oldsite.com/uploads/imagefile.pngnewsite.com/uploads/imagefile.png

我尝试的所有规则都适用于链接,例如oldsite.com/uploads/确实被重定向到的链接,newsite.com/uploads/但是,一旦我将文件添加到路径,我就会得到 404。

这是我尝试过的一条规则:

Redirect 301 /uploads http://www.newsite.com/uploads

或者

RewriteEngine on RewriteRule ^uploads/(.*)$ https://www.newsite.com/uploads/$1 [L,R=301]

标签: .htaccess

解决方案


尝试在您的.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^ (www\.)?oldsite.com/uploads/$1 [NC]
RewriteRule ^(.*)$ http://newsite.com/uploads/$1 [R=301,L]

您可以在此处查看此规则:https ://htaccess.madewithlove.be?share=cf237628-6307-5cd2-992c-5db8ffef8568

它检查 URL 的两种变体(www / 非 www),然后使用R=301重定向,这是指向新域和相关图像文件的永久重定向。

我建议R=302在测试时将其更改为,因为这是一个临时重定向。确保在测试之前清除缓存。


推荐阅读