2012-03-05 2 views
1

.htaccess로 URL을 다시 쓰고 싶은데 301 리디렉션하고 싶습니다. // 로컬 호스트/연구소/customer_132/kund = 예테보리 - STAD.htaccess rewrite url [아파치]

나는 그것을 같이하고

HTTP로 리디렉션 할 :

원래 URL이 HTTP 같다 : // localhost/labs/customer_132 /? page_id = 11 # goteborg-stad

시도했지만 다른 해결책은 있지만 그만 두지 마십시오.

도움 주셔서 감사합니다.

+0

원래 URL에 'page_id = 11'이 없습니까? – anubhava

+0

그래, 내가 "숙박"하고 그 부분을 바꿀 문자열의 마지막 부분을 알아. 그것의 ajax 페이지는 Wordpress로 바뀝니다. –

답변

1

RewriteRule stament를 사용하여 쿼리 문자열에 직접 액세스 할 수 없습니다. 대신 kund 필드가 있는지 확인하고 해당 값을 캡처하는 앞에 RewriteCond이 필요합니다. 그런 다음 RewriteRule에서 %N을 사용하여 캡처 된 값을 사용할 수 있습니다.

RewriteEngine On 

RewriteCond %{QUERY_STRING} kund=([\w\-]+) 
RewriteRule ^/labs/customer_132/ /labs/customer_132/?page_id=11#%1 [NC,R,L] 
+0

감사합니다. 보 로딘, 시도해 볼게요! 만약에 그것이 작동하지 않으면 돌아 오십시오 :) –

-1

당신은 htaccess로 파일에 재 작성 엔진을 설정해야합니다 리디렉션 단일 URL에 대한

RewriteEngine On 

그런 다음 htaccess로 파일을 루트 폴더에있는 경우 (다음과 같은 작업을해야하거나 서버).

편집 : 쿼리 문자열이 정확히 kund=goteborg-stad (대문자 또는 소문자) 인 경우 일치시킬 쿼리 문자열 조건을 확인해야합니다.

RewriteCond %{QUERY_STRING} ^kund=goteborg-stad$ [NC] 
RewriteRule ^labs\/customer_132\/$ /labs/customer_132/?page_id=11#goteborg-stad [NE,R,L] 

NE

는 리디렉션에서 # 기호를 탈출하지 아파치를 알려줍니다.

다른 URL을 리디렉션하려면 (예 : 고객 ID가 변경됩니까?) 명확하게해야합니다.

+0

-1 : 'RewriteRule'이보기 전에 쿼리 문자열이 URL에서 제거되므로 절대 * 일치하지 않는'RewriteRule'이 있습니다. – Borodin

+0

미안 나는 어리 석다. 쿼리를 보려면 % {QUERY_STRING}을 사용하십시오. 그런 다음 평소와 같이 리디렉션하지만 해시가 답변에서와 같이 '% 23' (으)로 인코딩되지 않도록'[NE] '를 포함시켜야합니다. 나는'kund' 쿼리를 조각으로 사용하지 않았습니다. 왜냐하면 모든 것이 여전히 동일한'page_id'로 리다이렉트 될 것이므로 이것이 필요한지 여부는 불분명했습니다. – Jack