2013-05-31 3 views
0

를 다시 작성할 필요가있다. 그러나 세션이 작성되지 않았으며 사용자 이름을 데이터베이스에서 가져와야하는 시나리오가 있습니다. 따라서 ID를 전달해야합니다 (필요한 경우). 나는 이것을 가지고있다 :htaccess로 내가 htaccess로에서 다음 줄을이 규칙 및 추가 쿼리 문자열

RewriteRule ^newpdfs/(.*)\.pdf?id=(.*) /getnewpdf.php?pdf=$1&id=$2 

그러나 내 ID 쿼리는 무시되고있다. 쿼리 문자열을 전달하는 방법은 무엇입니까?

답변

1

은 [QSA] 규칙의 끝은 쿼리 문자열을 당신은 L (마지막) 플래그를 놓치고있어

2

를 추가하는 것을 의미 추가 당신은 QSA가 (쿼리 문자열 추가])는 기존의 쿼리 문자열을 추가해야합니다 . 코드는 다음과 같이해야합니다 이상 :

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^newpdfs/([^.]+)\.pdf$ /getnewpdf.php?pdf=$1 [L,NC,QSA] 
2

그냥 기존 규칙에 QSA 플래그를 추가 :

RewriteRule ^newpdfs/(.*)\.pdf /getnewpdf.php?pdf=$1 [QSA] 

가 교체 URI 쿼리 문자열을 포함하는 경우, RewriteRule의 기본 동작은 폐기하는 것입니다 기존 쿼리 문자열을 새로 생성 된 쿼리 문자열로 바꿉니다. [QSA] 플래그를 사용하면 쿼리 문자열이 결합됩니다.

여기 더 참조 : http://httpd.apache.org/docs/2.4/rewrite/flags.html