2012-09-20 3 views
1

새로운 기본 PHP 사이트 페이지로 리디렉션하기 위해 이전 WordPress 사이트 페이지를 가져 오는 데 문제가 있습니다..htaccess 301 확장명이없는 페이지를 PHP 페이지로 리디렉션

예 : 확장자가없는 오래된 워드 프레스 페이지는 새로운 페이지 http://example.com/directory/pagename.php에있다 http://example.com/levelone/leveltwo/pagename

이다.

redirect 301 /levelone/leveltwo/pagename http://example.com/directory/pagename.php 

이 모든

에서 작동하지 않았다가 그럼 난과 같이, 다음 페이지, 디렉토리를 먼저 리디렉션 시도 :

RedirectMatch 301 ^/levelone/leveltwo/ http://example.com/directory/ 
redirect 301 /pagename http://example.com/pagename.php 

여기 내가 시도한 몇 가지 있습니다

이것은 거의 효과가 있었지만 올바른 URL을 제공했지만 PHP 확장은 제공하지 않았습니다.

실제로 많은 것이 있기 때문에 이전 디렉토리를 새로운 디렉토리로 리디렉션 할 수는 없습니다. 예제는 단지 하나입니다. 문제가 아닌 확장 페이지에서 .php 확장 페이지로 이동하는 것 같습니다.

여기에 내가 시도 또 다른 한가지는 다음과 같습니다

RedirectMatch 301 ^/levelone/leveltwo/(.*)$ /directory/$1.php 
redirect 301 /pagename http://example.com/pagename.php 

이 나에게 http://example.com/directory/pagename/.php했다.

해결 :

Redirect 301 /levelone/leveltwo/pagename/ http://example.com/directory/pagename.php 

문제는 이전 페이지 이름 뒤에 누락 된 슬래시와 함께있을 듯 : 나는 다음과 같은 작업을 얻었다.

+1

당신이 답변으로 솔루션을 게시하고 자신의 대답을 받아 들일 수 있습니다. 그러면 문제는 해결 된 것으로 표시됩니다. – TRiG

답변

0

봅니다 :

RedirectMatch 301 ^/levelone/leveltwo/(.*)$ /directory/$1.php 

무엇 아마 일어나고있는 것은 mod_alias가와 mod_rewrite는 서로 좋은 재생되지 않습니다이다. 둘 다 URI 파일 매핑 파이프 라인에 있으므로 처리 할 때 URI (리다이렉트 응답이 궁극적으로 일어나기는하지만)이 계속 처리되고 리디렉션이 발생하면 URI가 mod_rewrite에 의해 맹 글링되었습니다 .

mod_rewrite를 사용하여 모든 WordPress 규칙이 그 일을하지 못하도록 막아야합니다. 당신의 htaccess로 파일에 이상이 규칙 당신이 가지고있는 워드 프레스 규칙을 을 추가

RewriteEngine On 
RewriteRule ^/?levelone/leveltwo/(.*)$ /directory/$1.php [L,R=301] 
+0

이것은 나를 더 가까이 잡았지만 어쩌면 내가 아직도 잘못하고있는 중일 수도 있습니다. 나는 변화의 위 그러나 아직 여송연을 편집하지 않았다. – user1687345

+0

@ user1687345 어쩌면 무슨 일이 일어날 지 알고 있습니다 ... 제 편집에서 설명 드리겠습니다 –

+0

시도해 보겠습니다. 그리고 ... 단지 명확히하기 위해 사이트는 WordPress로 사용되었지만 지금은 기본적인 PHP 사이트이며 WordPress는 전혀 제공되지 않습니다. 무슨 일이 일어나고있는 오래된 URL은 Google에서 발견 되었기 때문에 404가 죽었으므로 최신 PHP 페이지로 리디렉션해야합니다. – user1687345

관련 문제