2012-05-05 3 views
0

get 매개 변수로 RewriteRule을 만들려고합니다. 간단한 예제이지만 여전히 작동하지 않습니다. 내가 localhost/123에 가면GET 매개 변수가있는 mod_rewrite

RewriteRule ^/?localhost/([0-9]+) test.php?id=$1 [QSA] 

그래서 나는 123 test.php 스크립트에 $_GET으로합니다.

이것이 실패하는 이유는 무엇입니까? 다른 모든 '정상적인'RewriteRules은 완벽하게 작동합니다.

답변

2

localhost은 도메인이며 RewriteRule에 속하지 않습니다. [QSA][L,QSA]으로 변경하여 더 이상 규칙이 실행되지 않습니다.

RewriteRule ^([0-9]+) test.php?id=$1 [L,QSA] 

도메인이 로컬 호스트 인 경우 에만 재 작성은, 다음 사용할 것이다, 그래서이 제한 될 필요가 경우 RewriteCond 같은 : 당신이 재 작성이 있다면 유용 할 것

RewriteCond %{HTTP_HOST} ^localhost$ 
RewriteRule ^([0-9]+) test.php?id=$1 [L,QSA] 

개발 중에 만 수행 할 수 있지만 프로덕션 서버에 배포 할 때는 수행 할 수 없습니다.

+0

때로는 너무 쉽습니다 ... 감사합니다. –

0

이 시도 :

RewriteBase /localhost 
RewriteRule ^(\d+)$ test.php?id=$1 [QSA] 

를 d는이 도움이 [0-9]

희망을 의미합니다 \.

관련 문제