2013-08-01 4 views
1

301 리디렉션에 몇 가지 문제가 있습니다. 모든 규칙이 작동하는 것은 아닙니다. 특히 폴더를 리디렉션하는 규칙은 작동하지 않는 규칙이라는 것을 알았습니다.301 폴더가 작동하지 않는 경우 리디렉션

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^index\.html$ "http\:\/\/www\.domain\.org\/" [R=301,L] 

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^subfolder\/$ "http\:\/\/www\.domain\.org\/" [R=301,L] 

첫 번째는 기본적으로 domain.org/domain.org/index.html를 리디렉션라고하고 그것을 잘 작동합니다 :

은의 cPanel에 의해 생성 된 규칙 중입니다. 그러나 두 번째 것은 domain.org/subfolder/domain.org으로 리디렉션하지 않았습니다.

301 리디렉션이 폴더에 대한 액세스를 리디렉션 할 수 있습니까?

답변

1

RewriteRule에서 대상에서 따옴표와 이스케이프 문자를 제거하면 정상적으로 작동합니다. 당신은 모든 존재하지 않는 하위 폴더를 리디렉션하려는 경우

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^index\.html$ http://www.domain.org/ [R=301,L] 

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^subfolder/$ http://www.domain.org/ [R=301,L] 

하위 폴더는 단어 "하위 폴더"에 대한 리터럴, 당신은 다음과 같은 것을 시도 할 수 있습니다. \w은 일반적으로 [A-Za-z0-9_]과 동일하며 하이픈도 허용합니다.

RewriteCond %{HTTP_HOST} ^domain\.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.org$ 
RewriteRule ^([\w-]+)/?$ http://www.domain.org/ [R=301,L] 
+0

실제로 나는 특정 하위 폴더를 리디렉션하고 모든 하위 폴더를 리디렉션하지 않았습니다. – ImpStudent

+0

@ImpStudent 당신이 내 대답의 첫 부분을 시도 했습니까? –