2014-11-19 7 views
0

내 URL을 리디렉션하는 데 막혔습니다. 나는 내가 거의 거기에있다라고 생각한다. 그러나 내가 놓치고있는 것을 감독 할 수 없다. 리디렉션이 올바른 URL로 이동하는지 테스트하지만 이전 URL을 새 URL로 유지합니다. 난이 붙어있어 어디htaccess의 RewriteRule에 붙어 있습니다.

이입니다

RewriteCond %{QUERY_STRING} lang=uk&page=page 
RewriteRule ^(.*)$ domain/page/ [L,R=301] 

RewriteCond %{QUERY_STRING} lang=fr&page=page 
RewriteRule ^(.*)$ domain/page/ [L,R=301]  

RewriteCond %{QUERY_STRING} lang=uk&page=about 
RewriteRule ^(.*)$ domain/about/ [L,R=301] 

RewriteCond %{QUERY_STRING} lang=uk&page=about 
RewriteRule ^(.*)$ domain/about/ [L,R=301]  

RewriteCond %{QUERY_STRING} lang=uk&page=news 
RewriteRule ^(.*)$ domain/info/ [L,R=301] 

RewriteCond %{QUERY_STRING} lang=fr&page=news 
RewriteRule ^(.*)$ domain/info/ [L,R=301] 

나는 또한 내가 모든 개별 리디렉션 할 경우 내가 큰 htaccess로 파일에 박히면서 무서워. 그 일이 느려질까요?

Lang = nl, uk, us, fr은 모두 같은 페이지로 이동합니다. 변경 후 모든 페이지의 페이지 이름이 동일하지 않습니다. 미리 감사드립니다.

답변

1

페이지 이름이 대상과 같지 않은 특정 리디렉션을 먼저두고 쿼리 매개 변수 page이 대상 URI와 동일한 값을 갖는 단일 규칙을 지정할 수 있습니다. 따라서 코드는이 두 규칙으로 만 단축 될 수 있습니다.

RewriteEngine On 

RewriteCond %{QUERY_STRING} lang=(fr|uk|us|nl)&page=news 
RewriteRule^/info/? [L,R=301] 

RewriteCond %{QUERY_STRING} lang=(fr|uk|us|nl)&page=([^&]+) 
RewriteRule^/%2/? [L,R=301] 
+1

많이 Thx! 이것은 내가 찾고 있었던 바로 그 것이다. – Kees

+1

Thx 다시 도움을. (새로운 여기) – Kees

+0

아무 문제, 우리 모두는 어떤 시점에서 새로운 사용자를 시작 :) – anubhava