리디렉션 규칙에 대한 HTTP 조건 설정

리디렉션 규칙에 대한 HTTP 조건 설정

A 내 컴퓨터에 리디렉션 규칙이 있습니다..htaccess에이전트를 다음에서 전달합니다.A.html에게B.html다음 패턴을 사용합니다.

Redirect 301 /A.html http://mysite.com/B.html

지시어는 대상 호스트를 설정해야 하기 때문에 Redirect이 규칙이 특정 호스트에만 적용되도록 할 수 있습니까? 테스트 도메인과 배포 도메인이 모두 있는데 배포 도메인에만 사용하고 싶습니다. 규칙 에 대한 HTTP 조건을 설정할 수 있지만 RewriteHTTP에 대한 조건은 어떻게 설정할 수 있나요 Redirect?

답변1

나는 순수 지시어로는 할 수 없다는 해결책을 찾았습니다 Redirect. 특정 HTTP 조건에서 방문자를 리디렉션해야 하는 경우 Rewrite규칙을 사용해야 합니다.

답변2

실제로 이 작업을 수행할 수 있지만 301 리디렉션 코드가 손실됩니다.

SetEnvIfNoCase Host "myotherdomain.com" redirectthisdomain

<Files "A.html">
   Order Deny,Allow
   Deny from env=redirectthisdomain

   ErrorDocument 403 http://mysite.com/B.html
</Files>

답변3

배포 도메인의 vhost 구성에 리디렉션 규칙을 넣기만 하면 됩니다. 이렇게 하면 이 호스트에 대해서만 활성화됩니다.

답변4

간단한 예를 들어, 방문자가 dev.example.com/A.html로 이동하면 B.html로 리디렉션됩니다. www.example.com/A.html로 이동하면 C.html로 리디렉션됩니다. 둘 다 301 리디렉션을 사용합니다.

RewriteEngine on
RewriteCond %(HTTP_HOST) ^dev.example.com$ [NC]
RewriteCond %(REQUEST_URI) ^/A.html
RewriteRule ^(.*)$ http://dev.exmaple.com/B.html [R=301]

RewriteCond %(HTTP_HOST) !^dev.example.com$ [NC]
RewriteCond %(REQUEST_URI) ^/A.html
RewriteRule ^(.*)$ http://dev.exmaple.com/C.html [R=301]

다음에 대해 더 자세히 읽을 수 있습니다.Apache의 Mod_Rewrite웹사이트.

관련 정보