를 통해 WordPress 웹사이트의 홈페이지만 다시 작성/프록시하기 위해 다양한 정규식( ^/$
, ^index.php$
, ) 을 시도했습니다 . 기록상으로 저는 이 작업을 수행하기 위해 적절한 모듈을 로드했으며 특정 정규 익스프레스를 사용하는 다른 경로에 대해 이를 수행할 수 있지만 홈페이지에서는 수행할 수 없습니다. 다른 답변이 표시되어 작동 하지만 나에게는 작동하지 않습니다. 홈페이지만 타겟팅하는 것이 어떻게 가능합니까?^$
.htaccess
^$
^/$
RewriteEngine On
RewriteBase /
RewriteRule ^$ http://some-other-domain.com [P]
최종 목표는 홈페이지용으로 다른 웹사이트의 페이지를 제공하는 것입니다. 아마도 더 나은 접근 방식이 있을까요?
답변1
대신 파일 상단에서 다음과 같이 시도해 보세요 .htaccess
.~ 전에WordPress 전면 컨트롤러:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(index\.php)?$ http://some-other-domain.com/ [P]
여기서는 RewriteBase
및 RewriteEngine
지시어가 필요하지 않습니다. 아마도 코드 블록 RewriteEngine
의 일부로 파일의 뒷부분에 이미 나타날 것입니다 # BEGIN WordPress
(순서는 중요하지 않습니다).
슬래시 접미사를 참고하세요.치환끈. 이것은필수의URL의 일부(비어 있는 URL 경로를 가질 수 없음) 여기서 생략하면 나중에 다른 것이 "수정"해야 합니다. 외부 리디렉션의 경우브라우저"수정"할 것이지만 여기에는 "브라우저"가 없습니다.
이는 빈 URL 경로와 index.php
(mod_dir이 디렉토리 인덱스에 대한 하위 요청을 발행하는 경우) 둘 다와 일치합니다.~ 전에mod_rewrite는 mod_proxy를 통해 요청을 보냅니다. 그만큼상태REDIRECT_STATUS
이 인스턴스에서는 프록싱을 피하기 위해 env var가 필요함을 확인합니다.모든 것, WordPress 전면 컨트롤러가 모든 것을 index.php
. 조건은 재작성된 요청이 아닌 직접 요청만 일치하도록 보장합니다.
곁에:ㅏRewriteRule
무늬like는 컨텍스트 ^/$
에서 절대 일치하지 않습니다 .htaccess
. 이는 지시어가 다음에서 사용된 경우에만 작동합니다.섬기는 사람(또는가상호스트) 문맥.