2011-11-10 3 views
2

현재 리디렉션하는 간단한 재 작성다시 쓰기 .htaccess에서 쿼리 문자열 유지

/photoviewer.php?photo=2 

그러나 사용자가 장바구니에 사진을 추가 할 수 있도록 허용해야합니다. 쿼리 문자열을 사용하면 다음과 같이 작동합니다.

/photos/2?action=purchase 

다음으로 리디렉션됩니다.

/photoviewer.php?photo=2&action=purcahse 

현재 htaccess 규칙은 다음과 같습니다.

RewriteRule ^photos/([a-zA-Z0-9_-]+)$ photoviewer.php?photo=$1 [L] 

답변

6

[QSA] 플래그 (쿼리 문자열 APPEND)를 추가합니다. 규칙에

RewriteRule ^photos/([a-zA-Z0-9_-]+)$ photoviewer.php?photo=$1 [L,QSA] 
+0

감사합니다! 타이머가 나를 허용 할 때 나는 동의 할 것이다. – Max

2

, [L,QSA][L]를 교체합니다.
그러면 쿼리 정보가 유지됩니다.

희망이 도움이됩니다.

+0

여기서 L은 마지막을 의미합니다. 즉, 규칙이 일치하면 다른 규칙을 보지 마십시오. – stivlo

1

[QSA,L] 대신 [L] 트릭을 수행해야합니다. 희망이 도움이!

1

URL을 통해 "모든"이름/값 쌍을 photoviewer.php 스크립트에 전달하도록 아이디어를 확장하는 것은 어떻습니까? 이것은 제가 과거에 사용해 왔던 우아한 접근법입니다.

RewriteRule ^photos\/([^/\.\-]+)\/([^/\.\-]+)$ /photoviewer\.php\?$1=$2 [L] 
RewriteRule ^photos\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)$ /photoviewer\.php\?$1=$2&$3=$4 [L] 
RewriteRule ^photos\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)\/([^/\.\-]+)$ /photoviewer\.php\?$1=$2&$3=$4&$5=$6 [L] 

그래서, 뭔가 같은 :

photos/photo/2/action/purchase 

재 작성에 다음 놀랍도록 빠른 응답

photoviewer.php?photo=2&action=purchase 
관련 문제