2011-12-08 3 views
0

안녕하세요.이 URL을 다시 쓰는 데 문제가 있습니다. 어떻게 해결하여 스스로 해결할 수 있습니까?RewriteCond - 어떻게 탈출 하시겠습니까?

URL이과 같이 퍼블릭 도메인으로 발송 된

: 나는 규칙을 작성해야

http://www.domain.com/directory/directory-2/10018485&key=3945 

를 수정 :

http://www.domain.com/directory/directory-2/10018485?key=3945 

` 지금처럼 할 트링 있습니까, 성공없이 ....

RewriteCond %{REQUEST_URI} \/directory\/directory-2\/10018485&key=3945 
RewriteRule ^(.*)$ /directory/directory-2/?id=10018485&key=3945 [L] 

감사합니다 :)

+0

입니까? 그리고 변하지 않아? – NrNazifi

+0

REQUEST_URI는 인코딩 된 URL입니다. 정규 표현식을 RewriteRule에 넣을 수 있습니다. RewriteCond를 사용할 필요가 없습니다. 이것을 시도해보십시오 :'RewriteRule^directory/directory-2/10018485 & key = 3945 $/directory/directory-2 /? id = 10018485 & key = 3945 [L, R]'(Google에 중복 된 내용을 막기 위해 R을 추가했습니다). 그렇지 않으면 각각 '&'및'='에 대해 % 26 및 % 3D를 시도하십시오. – Gerben

답변

0

&에서 % 26을 (를) 탈출 할 필요가 없습니다. 당신이 가지고있는 것은 저에게 잘 돌아가며, 왜 당신을 위해 일하지 않는지 확신 할 수 없습니다. 그러나 RewriteCond는 필요하지 않습니다. 2를 하나의 규칙으로 결합 할 수 있습니다. 나를 위해이 작업을 할 때 실제 요청은 더 추상적 인 의미에서 /directory/directory-2/10018485&key=3945 또는

RewriteRule ^directory/directory-2/10018485&key=3945$ /directory/directory-2/?id=10018485&key=3945 [L] 

directory/directory-2/10018485%26key=3945입니다 : 디렉토리 및 디렉토리-2 상수는

RewriteRule ^directory/directory-2/([0-9]+)&key=([0-9]+)$ /directory/directory-2/?id=$1&key=$2 [L]