2012-12-15 3 views
0

나는 약 38 웹 사이트를 Joomla에서 Wordpress로 옮길 예정이다..htaccess + wordpress, 여러 디렉토리 리디렉션

SEO가 있기 때문에 동일한 연결 구조를 유지하고 싶습니다. 불행히도 마지막 개발자는 링크를 구성하는 방식에 부주의했습니다. 따라서 성취해야 할 이상한 요구 사항이 있습니다.

때때로 블로그는 index.php/blog-4이고 동시에 index.php/blog 및 index.php/blog-5입니다. 워드 프레스에서

, 나는 영구 링크가

될했다

의 index.php/블로그-5/% postname %의

내가 전에 htaccess로 편집,하지만 내가 뭘하고 싶은 리디렉션하는 것입니다 적이 >/블로그-5/*

/블로그-4 *에게/-가 -/블로그-5/*

어떻게 작성합니다 달성하기> 에게

/블로그 *에게/

로 이동 아무것도 이?

편집

나는 문제가 마이클의 답변을 구현하는 데 문제가 있습니다. .htaccess의 모습은 다음과 같습니다. 필자는 그것을 내부와 외부 모두에 넣으려고했다.

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 


RewriteCond %{REQUEST_URI} !^/blog-5 
RewriteRule ^blog(-.+)?/(.*) blog-5/$2 [L,R=301] 

</IfModule> 

# END WordPress 

답변

2

이것은 매우 간단합니다. RewriteRule입니다. (-4)? 표현을 사용하여 -4을 선택적으로 일치시키고 /blog/에 대한 요청과 함께 /blog-5으로 리디렉션하십시오. / 뒤에 두 번째 (.*) 그룹은 다른 모든 것을 $2에 캡처합니다.

RewriteEngine On 
RewriteRule ^blog(-4)?/(.*) blog-5/$2 [L] 

위의 내용은 자동 내부 재 작성을 수행합니다. 리디렉션하고 브라우저에 새 URL을 표시하게하려면 [L][L,R=301]으로 변경하십시오.

참고 : blog-4을 인식하는 것은 변수 이름 일 수 있으므로 (-.+)?을 사용하여 일치하는 항목을 찾으십시오. 하지만 당신은 또한 RewriteCond은 그래서 blog-5 일치하지 않습니다 필요합니다 빠른 답변

RewriteCond %{REQUEST_URI} !^/blog-5 
RewriteRule ^blog(-.+)?/(.*) blog-5/$2 [L] 
+0

안녕 마이클, 감사합니다. 이것은 의미가 있습니다. 나는 리다이렉트가 일어나는 것을보고 있지는 않지만 이것을 추가하려고 시도했다. .htaccess 파일에서 작성한 방식 때문일 수 있습니다. 질문을 htaccess 파일로 업데이트했습니다. 생각이 크게 평가되었습니다 –

+0

@StepanParunashvili 죄송합니다. 귀하의 의견을 놓쳐 버렸습니다. 이유를 알지 못했습니다. 'RewriteRule '처럼 보입니다./index.php'가 먼저 일치하는 것 같습니다. 새로운 규칙을 테스트하기 위해 해당 줄을 주석 처리하십시오. 아마도 _last_ 규칙으로 다시 추가해야 할 것입니다. –

+0

@StepanParunashvili 나는 당신이 다시 받아 들였다는 것을 보았습니다. 그래서 나는 당신을 위해 잘되기를 바랍니다. –

관련 문제