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

古いホストにアクセスできる場合 (コメントからわかるように)、ルールを古いサイトの docroot に配置すると機能するはずです。

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

ただし、これは古いリクエストをリダイレクトするだけです。古いドメインが最終的に期限切れになる場合は、新しいドメインを参照するようにサイトを更新する必要があります。

関連情報