htaccess는 한 도메인의 모든 URL(이미지 href 포함)을 다른 도메인으로 다시 작성합니다.

htaccess는 한 도메인의 모든 URL(이미지 href 포함)을 다른 도메인으로 다시 작성합니다.

최근에 .com에서 .co.uk(myurlstudio.com/blog에서 myurl.co.uk/blog로)로 마이그레이션한 하위 디렉토리에 wordpress 블로그가 있습니다. 문제는 많은 게시물에 이미지가 있고 해당 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]

하지만 이는 오래된 요청만 리디렉션합니다. 이전 도메인이 결국 만료되는 경우 새 도메인을 참조하도록 사이트를 업데이트해야 합니다.

관련 정보