2012-12-13 2 views
0

나는이친절한

http://myweb.com/post/5/title-of-the-post (새 URL)

http://myweb.com/post.php?id=5가 (이전 URL)

내가 이것을 달성 rewritting있어에 이전 URL 리디렉션 작성자 :

RewriteEngine On 
#Options +FollowSymLinks 
RewriteRule ^post/(.+)/(.+) post.php?id=$2 

하지만 내가 입력하려고하면 e old url은 여전히 ​​가능합니다. 그래서 어떻게하면 이 새로운 하나의으로 리다이렉트되고 루프가 끝나지 않을까요?

+0

¿ 어디에 새 URL의 리소스가 있는데, 여전히 'http : //myweb.com/post.php? id = 5'입니까? –

+0

예, 리소스는 동일합니다. 그것을 단지 우호적 인 것으로 바꾼다. –

답변

1

첫째,이 규칙을 추가

RewriteCond %{QUERY_STRING} id=([0-9]+) 
RewriteRule ^post\.php$ post/%1/article [R=301,L] 

이것은 즉시 리디렉션을 강제하고 더 규칙을 처리하지 않습니다. 게시/요청 /이 규칙과 일치하지 않을 것으로 요청하고 건너 뜁니다. .htaccess는 사용할 제목을 알 수있는 방법이 없으므로 일반적인 기사 제목을 만들어야합니다.

다음으로,이 규칙 추가

RewriteRule ^post/([0-9]+)/(.*)$ post.php?id=$1 [L] 

요청이 이미 위 잡힌 것이다 post.php하기를, 그래서 그들은이 라인에 도달하지 않습니다. 이렇게하면 예상대로 리다이렉션을 수행 할 수 있으며 무한 루프가 없어야합니다.

관련 문제