Apache는 RewriteRule을 사용하여 전체 URL을 리디렉션합니다.

Apache는 RewriteRule을 사용하여 전체 URL을 리디렉션합니다.

"RewriteRule" 리디렉션 문제가 있습니다. mt .htaccess에 다음이 있습니다.

RewriteCond %{HTTP_HOST} ^foo.domain.com
RewriteRule ^(.*)$ http://www.domain.com/foo/$1 [R=permanent,L]

foo.domain.com으로 이동하면 www.domain.com/foo/로 리디렉션되는데 괜찮습니다. 하지만 foo.domain.com/bar로 이동하면 오류가 발생하여 www.domain.com/으로 이동해야 합니다. foo/바. 오류는 어디에 있습니까?

답변1

Apache(또는 mod_rewrite)가 잘못된 "Location:" 헤더 행을 작성하고 있을 수 있습니다. 다시 쓰기 규칙에 슬래시를 추가합니다.

RewriteCond %{HTTP_HOST} ^foo.domain.com
RewriteRule ^/(.*)$ http://www.domain.com/foo/$1 [R=permanent,L]

슬래시 없이 이 작업을 시도하면 다음과 같은 "Location:" 헤더 라인이 표시됩니다 http://www.stratigery.com/foo//whatever. 모든 브라우저가 URL에 추가 슬래시를 처리할 수 있는지는 확실하지 않습니다.

관련 정보