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 看起來像這樣(這是crete5的標準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]

但這只會重定向舊請求。如果舊網域最終將過期,您仍然需要更新網站以引用新網域。

相關內容