2010-07-05 4 views

답변

0

기본 재 작성 :

RewriteEngine On 
RewriteRule http://www.site.com/?lang=(.+?)&type=(\d+?)&mode=(\d+?) http://www.site.com/$1/$2/$3 [L,R=permanent] 

편집 : 변경된 재 작성 플래그 실제로 /lv/1/2?lang=lv&type=1&mode=2를 다시 쓸 원하는 가정 영구 리디렉션

+0

작동하는 것 같습니다. 요청한 URL을이 서버에서 찾을 수 없습니다. – werd

+0

'site.com/lv/1/2'에 응답하는 페이지가 있습니까? 어떤 종류의 프레임 워크를 사용하고 있습니까? –

1

을 강제로 (I 반대 할 이유 참조) 다른 다시 쓰기가 활성화되어 있지 않으면 트릭을해야합니다.

RewriteRule ^/([^/]*)/([^/]*)/([^/]*)$ ?lang=$1&type=$2&mode=$3 [L] 

또한; 당신은 당신의 URI에 그것들을 포함하기를 원한다면 그 마술 번호를보다 유용한 정보로 대체하는 것이 더 낫습니다.

편집 : 정말 당신이하고 싶은 그 반대 인 경우는, 매트 S.

+0

네, 저는 그 반대입니다 : P 고마워요! – werd

0

하여 답을 당신은 별도로 URI 경로와 쿼리를 처리해야합니다. 매개 변수가 바로 그 같은 순서로 표시하는 경우, 당신은이 작업을 수행 할 수 있습니다

RewriteCond %{QUERY_STRING} ^lang=([^&]+)&type=([^&]+)&mode=([^&]+)$ 
RewriteRule ^$ /%1/%2/%3? [L,R=301] 

그렇지 않으면 당신은이 규칙을 사용하기 전에 올바른 순서에 넣어 또는 한 번에 각 매개 변수에 응시해야합니다.

+0

이들 중 어느 것도 어떤 방식 으로든 작동하지 않습니다. Apache 구성 또는 기타에서 변경해야 할 것이 있습니까? – werd

+0

@werd : 의무적 인 'RewriteEngine on'을 사용하고 있습니까? 그리고 그 규칙을 어디에서 사용하고 싶습니까? – Gumbo

+0

예, 사이트 색인에 사용 중입니다. 루트 디렉토리에 index.php와 .htaccess 파일이 있습니다. – werd

관련 문제