2016-07-01 4 views
1

우분투 14.04에서 아파치를 실행 중이고 301 리다이렉션을 설정하려고합니다. 리디렉션이 작동하지만 예상대로 작동하지 않습니다. 여기에 내가 가진 무엇 :서브 디렉토리에서 특정 html 파일로 301 리다이렉트

#REDIRECTS 
Options +FollowSymLinks 
RewriteEngine On 


# REMOVES INDEX.PHP 
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 

# REDIRECT SPECIFIC PAGES 
Redirect 301 /main http://mikeheavers.com 
Redirect 301 /main/ http://mikeheavers.com 
Redirect 301 /main/code http://mikeheavers.com/tutorials.html 
Redirect 301 /main/code/ http://mikeheavers.com/tutorials.html 

처음 두 redirect 301의 작업을하지만, 나머지는 같은 /main/code로, http://mikeheavers.com/code로 리디렉션 및 http://mikeheavers.com/tutorials.html을 참고하려고합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?


업데이트 : 나는 후행가

답변

0

Redirect 지침을 가지고 mod_aliasmod_rewrite 규칙을 혼합하지 마십시오 슬래시 모두 포함하고 포함하지 않는 URL을 리디렉션 할 수 있어야 있습니다. 다음을 사용하십시오 :

#REDIRECTS 
Options +FollowSymLinks 
RewriteEngine On 

# REDIRECT SPECIFIC PAGES 
RewriteRule ^main/?$ http://mikeheavers.com [L,NC,R=301] 
RewriteRule ^main/code/?$ http://mikeheavers.com/tutorials.html [L,NC,R=301] 

# REMOVES INDEX.PHP 
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 

이 변경 사항을 테스트하기 전에 브라우저 캐시를 지우십시오.

+0

감사합니다. 후행 슬래시가 있거나없이 URL을 리디렉션 할 수있는 상황을 어떻게 처리합니까? 당신의 예제는 후행 슬래시가 포함될 수 있다고 생각합니다. – mheavers

관련 문제