2009-03-12 5 views
3

로 리디렉션 내가 현재 가지고과 같이 URL을 사용하여 워드 프레스로 설정 블로그 :은 mod_rewrite를

www.domain.com/blog/?pid=384092817

이것은 내가 무엇에 대해서 알고 있기 전에였습니다. 거기에 지금은 많은 양의 내용이 그리고 내가 내 URL 구조를 변경하려면 :

www.domain.com/my-post-title-384092817

인가 거기 내 .htaccess 및 mod 재 작성을 설정하는 방법으로 사용자가 첫 번째 URL로 이동하면 두 번째 URL로 301 리디렉션이 생깁니 까? 내 WordPress 주소 (URL) 설정을 www.domain.com/blog에서 www.domain.com으로 변경하고 영구 링크 설정을/% postname % - % post_id %로 변경하는 것을 알고 있지만 이전 URL로 리디렉션 할 방법을 알려주는 방법 새로운 것들?

답변

4

실제로 사용자가 두 번째 URL로 이동하면 첫 번째 URL로 다시 작성됩니까? 당신은 (301)가 새로운 사람에게 이전 URL의 리디렉션을 보내려면 즉 당신은 정말 할 수 없어,

RewriteRule /blog/.+-(\d+)$ /blog/?pid=$1 

와 함께 할 수있는 .htaccess 파일,. 그 이유는 Apache의 mod_rewrite는 게시물의 제목에 액세스 할 수 없기 때문에 URL에 삽입 할 제목을 알 수 없기 때문입니다. PHP로 리디렉션해야합니다.

편집 : 실제로는 완전히 사실이 아닙니다. RewriteMap directive으로 아파치에게 임의의 프로그램에 재 작성을 요구하도록 명령하는 것 등 에는 어떤 데이터베이스 작업을 수행하는 PHP 스크립트가 있습니다. 제목은 그것을 기반으로 적절하게 URL을 다시 작성합니다. 그러나 이것은 단순한 방법과 같아서 PHP로 직접 리다이렉트하는 것이 훨씬 깔끔하고 쉬울 것입니다.

+0

나는이 URL이 필요합니다 : 그 시점에서, 당신이해야 할해야 할 유일한 것은 모든/블로그/... 당신은 대략 다음과 같이 mod_rewrite를 통해 할 수있는 경로로 요청 리디렉션입니다/블로그 /? pid = 234 to 301이 URL로 리디렉션됩니다./my-post-title-234 –

+1

처음에는 질문에 대한 오해가 있었지만 편집 된 답변을 보았습니다. 기본적으로 (또는 적어도 그렇게해서는 안됩니다) 할 수 없습니다. 그 mod_rewrite 함께. –

+0

단순화 된 버전은 무엇입니까? /blog /? pid = 123에서 /index.php?p=123으로 이동 한 다음 나머지는 WordPress에서 처리합니다. –