2012-06-13 4 views
0

htaccess로 내 URL을 다시 쓰고 이제는 이전 URL을 새 URL로 리디렉션하려고합니다.하지만 결국 어떻게해야 할지를 알 수 없습니다. .htaccess URL 다시 작성 후 이전 페이지 URL 리디렉션

은 내 리디렉션 규칙이 사용됩니다 같은

RewriteRule ^page/([^/]*)/$ /page.php?name=$1 [L] 

이전 URL의 모양 : page.php 이름 = 페이지 이름

이 같은 새 URL의 모양 :/페이지/페이지 - 이름/

+0

? 어떤 문제가 발생하고 있습니까? –

답변

0

GET 매개 변수를 사용하여 URL을 리디렉션하려는 경우 다소 복잡합니다.

RewriteRule ^page\.php$ %{QUERY_STRING} [C] 
RewriteRule name=(.*) /page/$1/? [R=301,L] 

Explainations : 당신이 page.php?name=page-name 다음

  • ?name=page-name에 재

    • 먼저, (이 결과를 다음과 같은 규칙을 사용하여 물어 [C] 여기

      그것을 할 수있는 트릭 태그)
    • 셋째, page-name을 리디렉션하고 (.*) ~ page/page-name/
    • 마지막 트릭. 마지막으로 ?을 입력하지 않으면 쿼리 문자열이 결과에 추가되며이 종류의 URL은 page/page-name/?name=page-name입니다. 사용하지 않는 ?을 사용하면 이전 GET 매개 변수가 지워집니다. 여기

    발견 된 일부 정보 :

    그래서 무슨 일이야
  • +0

    코드를 사용하려고 시도했지만 리디렉션이 작동했지만 다시 쓰기 규칙과 함께 사용할 때 오류가 발생합니다. "페이지가 제대로 리디렉션되지 않습니다. Firefox가 서버가이 주소에 대한 요청을 리디렉션 중임을 감지했습니다. 결코 완료되지 않을 방법. " –

    +0

    규칙을'^ name = (. *) $'으로 바꾸어보십시오 (기본 테스트 archi에서는 잘 작동합니다) – zessx