htaccess将所有URL(包括图像hrefs)从一个域重写到另一个域

我刚刚从.com网站迁移到.co.uk(myurlstudio.com/blog到myurl.co.uk/blog)的子目录中,有一个wordpress博客。 问题是许多post都有图像,而他们的hrefs仍然指向旧域,所以他们不能使用当前的htaccess设置。 图片指向http://www.myurlstudio.com/blog/wp-content/uploads/image.jpg ,当我希望他们指向http://www.myurl.co.uk/blog/wp-content /uploads/image.jpg 。 所以,我需要在htaccess中更改的是“ http://www.myurlstudio.com/blog ”到“ http://www.myurl.co.uk/blog ”,无论它出现在哪里。

目前的htaccess看起来像这样(这是concrete5的标准URL重写scheme):

# -- concrete5 urls start -- <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^(www.)?myurlstudio.com$ RewriteRule ^(.*)$ http://www.myurl.co.uk/$1 [L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] </IfModule> # -- concrete5 urls end -- 

正如你可以看到myurlstudio.com被redirect,但文件内的URL似乎并没有被重写。

任何帮助将非常感激!

如果您有权访问旧主机(听起来像您从评论中所做的那样),那么您的规则应该放在旧网站的文档根目录中:

 RewriteCond %{HTTP_HOST} ^(www.)?myurlstudio.com$ RewriteRule ^(.*)$ http://www.myurl.co.uk/$1 [L,R=301,QSA] 

但只redirect旧请求。 如果旧域最终将过期,您仍然需要更新站点以引用新域。