Redirect
은 경로 접두어와 일치합니다. Redirect
일치 (현명한 경로 세그먼트) 접두사의 어떤 경로 /here
하고 새로운 URI에 추가합니다 다음
Redirect 301 /here http://example.com
그래서 경로의 모든 요청이 /here
시작이의 다음 경로 접미사를 추가 http://example.com
책략로 리디렉션됩니다 /here
~ http://example.com
.
이와 대조적으로 RewriteRule
은 정규 표현식과 함께 작동합니다. 그 here/
다음 새로운 URL에 추가됩니다 후
RewriteRule here/(.*) http://example.com/$1 [R=301,L]
아무것도 :이 경우, 다음 RewriteRule
는 here/
가 포함 된 모든 경로와 일치합니다.
/here
으로 시작하는 경로로 URL을 요청할 때 두 가지 지시문 모두 동일한 효과가 있지만 후자는 경로가 here/
인 /not/here/foo
을 포함하는 모든 요청과도 일치합니다.
또한, 당신은 단지 mod_rewrite를 함께 추가 조건을 사용할 수 있습니다
RewriteCond $0 !=here/stayhere.html
RewriteRule ^here(/.*)?$ http://example.com$0 [L,R=301]
당신이 mod_alias가와 동일한 작업을 수행하고자한다면, 당신은 /here/stayhere.html
아무것도하지만 일치하는 정규 표현식 RedirectMatch
를 사용해야합니다.
당신이 정규식과 아무 상관이 있는지 위치 : 구성에
RewriteEngine on
을 추가하는 것은 문제가 해결되지 않으며 당신이 mod_rewrite를에 전환 할 수 없다면, 적어도 mod_alias가있는 RedirectMatch에 지시어, 충분있을 수 있습니다 제공? – Keng예 ... 아래의 idealmachine은 정규식을 사용한다고 말했습니다. 그게 전부가 일치하는 방법 아닌가요? – gravityboy
그리고 Gumbo는 "정규 표현식" – gravityboy