mod_rewrite를 사용하여 특정 도메인을 다른 도메인으로 리디렉션하는 것에 대한 질문이 있습니다. 각 도메인 이름에 대해 별도의 다시 쓰기 규칙을 만들 필요없이이 작업을 수행 할 수있는 가능한 가장 짧은 방법을 찾고 있습니다. 나는 많은 새로운 도메인 이름 (대략 20-30 개의 도메인 합계)을 추가 할 것이다.다른 도메인을 다른 도메인으로 리디렉션
내 기본 도메인 이름이 example.com이고 모든 도메인 이름을 사용한다고 가정 해 보겠습니다. 따라서 다른 도메인 중 하나를 사용하면 하위 도메인 접두어와 URL 경로를 유지하면서 자동으로 기본 도메인으로 리디렉션됩니다.
예 :
test.example.org => test.example.com
test2.example.co.uk => test2.example.com
test3.example.net/hello/world. PHP => test3.example.com/hello/world.php
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.([a-zA-Z]+)\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1\.example.com/$1 [R=301,L]
위에서 제대로하거나 올바른 구문 경우 작동하는지 내가 확실입니다. 하지만 기본적으로 하위 도메인 접두어, 모든 도메인 이름 및 모든 TLD (.org, .info, .biz, .co.uk, .net 등)와 일치하게하고 싶습니다. 무한 리디렉션 루프를 방지하기 위해 먼저 올바른 주 도메인 (example.com)이 아닌지 확인해야한다고 가정합니다.
또한 HTTPS가 켜지거나 꺼져 있는지 확인하고 리디렉션을 올바르게 설정할 수 있습니까? 그렇지 않으면 항상 HTTPS를 ON으로 설정할 수 있습니다.
이 혼란을 드려 죄송합니다. 각 도메인을 .htaccess로 프로그래밍 할 필요없이 처음으로이 권한을 얻고 싶습니다.
감사합니다. :)
이 예제를 사용이 그것은 작업을 수행합니다. 필요한만큼 정확하게 작동하는지 확인하기 위해 몇 가지 추가 테스트를 수행하면됩니다. 자세한 답변 해 주셔서 감사합니다. –
첫 번째 규칙이 작동하는 방식을 이해하고 있습니까? 문자열이 on 또는 off 중 하나입니다. 따라서^1 (s?) 결과가 % 1 = "s"또는 ""이므로 env 변수 PROTO가 올바르게 설정됩니다. Cond2A는 하위 도메인의 '* .example.com' 및 cond2B 파일에 대한 루프를 방지합니다. Rule2B는이 모든 것을 하나로 합친다. 진드기가 작동하면 멋질 것입니다 :-) – TerryE
완벽하게 작동하고 개념을 이해합니다. 내가 겪고있는 한 가지 문제점은 누군가 example.org에 갔다고 말하면서 탐색 할 때까지 example.org에 남아있을 것이라고합니다. 나는 다른 트릭을 시도했지만 메인 "example.com"으로 바꿀 수는 없다. –