2011-06-14 1 views
0

내 기존 페이지에 mod_rewrite를 통합하는 데 총체적 인 노력을하고 있습니다. 현재, 나는 처음부터 새 사이트를 구축하고, 거기에 내가 몇 가지 좋은 깨끗한 URL의 등이 있습니다 CMS를 간단하게 실행,매개 변수가있는 URL을 리디렉션하는 방법은 무엇입니까?

http://www.example.nl/nl/example 

오래된 사이트를 필요 일부-다시 작성하지 URL의 리디렉션해야합니다 새 페이지로 이 같은 그 URL의 모양 : 그런의

http://www.example.nl/index.php?page=cake-and-pie&hl=nl_NL 

그러나 짧은 버전 :

http://www.example.nl/index.php?page=cake-and-pie 

도 작동합니다.

URL이 매개 변수와 함께 "리디렉션 301"으로 리디렉션 될 수 없다는 것을 알아 채는 데 시간이 걸렸습니다. 그래서 thisthis과 같은 일부 온라인 mod_rewrite 생성기를 시도했지만 그 결과로 출력되는 규칙은 404 오류 만 발생합니다 (리디렉션이 전혀 작동하지 않음).

내 htaccess로 파일 전류는 다음과 같습니다

RewriteEngine On 
RewriteBase/

# remove .php; 
RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP 
RewriteRule (.*)\.php$ $1 [R=301] 

# remove index 
RewriteRule (.*)/index$ $1/ [R=301] 

# remove slash if not directory 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} /$ 
RewriteRule (.*)/ $1 [R=301] 

# add .php to access file, but don't redirect 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule (.*) $1\.php [L] 

이전 페이지가 존재 포착 것이다. 이전 페이지를 새 페이지로 리디렉션하는 방법은 무엇입니까?

감사합니다.

RewriteCond %{QUERY_STRING} =page=pie 
RewriteRule ^index\.php$ /nl/? [L,R=301] 
RewriteCond %{QUERY_STRING} =page=pie&hl=nl_NL 
RewriteRule ^index\.php$ /nl/? [L,R=301] 

편집 트릭을 할 것으로 보인다. 이것은 물론 모든 URL에 대한 수동이지만, 나는 단지 몇 가지 있습니다.

답변

0
RewriteEngine On 
RewriteBase/
RewriteRule ^(.+)/([^/]+)/?$ index.php?page=$1&hl=$2 
RewriteRule ^([^/]+)/?$   index.php?page=$1 [QSA] 
+0

어떻게 든이 부분은 ... 페이지가 리디렉션되지 않습니다. – Lg102