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

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

我有一个 wordpress 博客,位于一个子目录中,我最近将其从 .com 迁移到 .co.uk(myurlstudio.com/blog 到 myurl.co.uk/blog)。问题是许多帖子中都有图片,而且它们的 href 仍然指向旧域名,因此它们无法与当前的 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 重写方案):

# -- 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 已被重定向,但文档内的 URL 似乎并未被重写。

任何帮助将非常感激!

答案1

如果您有权访问旧主机(从评论来看您确实可以访问),则当您的规则放在旧站点的文档根目录中时应该可以工作:

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

但这只会重定向旧请求。如果旧域名最终会过期,您仍然需要更新网站以引用新域名。

相关内容