2011-11-03 4 views
0

Ech, 내 쿼리 문자열 모양은 다음과 같습니다.쿼리 문자열에 두 개의 물음표와 두 개의 앰퍼샌드가 있습니까?

http://localhost/index.php?page=public&another=http://www.google.com?omg=tt&nop=asd 

xxxx

urlencode이 URL을 regex없이 시도하십시오 :

http://localhost/index.php?page=public&another=http://www.google.com?omg=tt&nop=asd 

에코 :

http%3A%2F%2Fwww.google.com%3Fomg%3Dtt 

(2)이 경우 &nop=asd 부분은 사라졌습니다.

그래서 (1) 일을하고 (2) 이것을하는 이유는 무엇입니까? 가장 큰 질문은 쿼리 문자열에서 두 개의 질문과 앰퍼샌드를 전달하는 방법입니다. 이 상황에 관한 제안이 있으십니까?

답변

0

문제는 재 작성 규칙에 있습니다. 이처럼 유무 : 있는지 확인합니다 추가 QSA 플래그가 원래 쿼리 매개 변수를 보존하는 것을

RewriteRule ^pass-([^=]*)=([^=]*)$ hw.php?page=$1&another=$2 [L,QSA] 

참고.

+0

글쎄, 10 분 후에 PHP에서 이것을 실현했습니다 : $ _SERVER [ 'REQUEST_URI'],/pass-url =도 제공하지만 str_replace는 "삭제"하고 URL은 작동합니다. 어쨌든, 도와 줘서 고마워. – ZeroSuf3r