2010-03-18 6 views
0

.htaccess를 사용하여 URL을 다시 쓰려고합니다. Apache 2.2.15 버전에서 실행 중입니다. htaccess로의.htaccess 다시 쓰기는 원하지 않는 내용을 출력합니다. 내 생각 엔?

내용 : member_page.php의

RewriteEngine on 
RewriteRule cars/(.*) cars/member_page.php?user=$1 
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 

내용 :

http://www.mydomain.com/cars/user1 

이 브라우저는 문자열을 출력 "member_page.php :

<?php 
echo $_GET[user]; 
?> 

URL을 브라우저에 입력 "대신"user1 "

원본 URL에서 (. *)의 내용을 출력하도록하려면 어떻게해야합니까?

답변

0

이 형식의 문제 : 나는/어떤 차에/member_page.php 차를 다시 작성되었다

RewriteEngine on 
RewriteRule cars/(.*) cars/member_page.php?user=$1 [L] 
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 [L] 

밝혀졌습니다. 이로 인해 다시 쓰기가있는 동일한 디렉터리에 다시 쓰기 문제가 발생합니다.

은 그래서

cars/user1 

그것은 두 번 최종 정보와 두 번째 재에서 콘텐츠를 사용하여 다시 작성했다
cars/member_page.php/user=member_page.php 

에 다시 작성했다. 해결 방법은 member_page.php를 다른 디렉토리로 이동하는 것입니다.

RewriteEngine on 
RewriteRule cars/(.*) memberscars/member_page.php?user=$1 [L] 
RewriteRule cars/(.*)/ memberscars/member_page.php?user=$1 [L] 
0

음, 우선 $_GET['user']이 아니라 $_GET[user] (따옴표에 유의하십시오). 귀하의 mod_rewrite 규칙에 관한 :

RewriteEngine On 
RewriteRule cars/(.*) cars/member_page.php?user=$1 [L] 
RewriteRule cars/(.*)/ cars/member_page.php?user=$1 [L] 

L은 적용 할 마지막 규칙을 의미합니다.

+1

그러나 302 리디렉션은 아마도 원하는 것이 아니겠습니까? [L]은 이미 할 수 없습니까? –

+0

그냥 실현, 그에 따라 내 대답을 편집. – middus

관련 문제