Mod Rewrite 리디렉션 URL with query string to pretty url

Jul 24 2012

쿼리 문자열에 여러 매개 변수가있는 추악한 URL에서 mod 재 작성을 사용하여 깔끔한 URL로 성공적으로 변경했습니다. 그러나 내 사이트에는 많은 URL이 있습니다. 돌아가서 각 앵커 태그의 href 속성을 편집하는 대신 이전 URL을 새 URL로 자동 리디렉션하는 .htaccess 파일에 리디렉션 함수를 작성하려고했습니다.

내 .htaccess 파일에는 다음이 있습니다.

RewriteEngine On

Redirect teams.php?league=$1&team=$2&year=$3&tab=$4 teams/(.*)/(.*)/(.*)/(.*)

RewriteCond %{REQUEST_URI} !^(css|js|img)/
RewriteRule ^teams/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ teams.php?league=$1&team=$2&year=$3&tab=$4 [L]

그래도 운이 없어요 ... 어떤 생각이라도?

감사

답변

4 JonLin Jul 24 2012 at 17:47

당신은에 이전 URL 것을 체크 할 필요가 php그것에는 실제로 요구되고 에 대한 매칭에 의해를 %{THE_REQUEST}, 그렇지 않으면 (사용자가 team.php 간다 예를 들면 영원히 루프를 리디렉션 것, 팀, 브라우저 요청 팀, 서버 재 작성 등으로 리디렉션을 제공 teams.php, 서버는 "teams.php"를보고 팀으로 리디렉션, 브라우저 요청 팀, 서버는 teams.php로 재 작성 등)

RewriteEngine On

# redirect when the user actually requests for teams.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /teams\.php\?league=([^&]+)&team=([^&]+)&year=([^&]+)&tab=([^\ ]+)
RewriteRule ^teams\.php$ /teams/%1/%2/%3/%4? [R=301,L] # internally rewrite any /teams/ URI RewriteCond %{REQUEST_URI} !^(css|js|img)/ RewriteRule ^teams/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ teams.php?league=$1&team=$2&year=$3&tab=$4 [L]