2013-01-08 4 views
0

WordPress 웹 사이트 (http://www.raynauds.org)의 루트에 htacess 파일이 있습니다. 나는 모든 통화를 리디렉션해야합니다htaccess의 301이 리디렉션되지 않습니다.

http://www.raynauds.org/?p=2366

에 :

http://www.raynauds.org/2012/08/11/dr-maureen-mayes-joins-raynauds-association-medical-advisory-board/

나는 Linxus 서버에 아파치를 실행하고 있습니다. 아래 코드는 요청을 리디렉션하는 데 아무런 역할을하지 않는 것 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

# BEGIN WordPress 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
# END WordPress 
Redirect 301 /?p=2366 http://www.raynauds.org/2012/08/11/dr-maureen-mayes-joins-raynauds-association-medical-advisory-board/ 
+0

AllowOverride가 아파치 설정에서 설정되어 있습니까? – case1352

답변

1

다시 쓰기 및 리디렉션은 모두 실행 파일을 찾기 전에 URL에 적용됩니다.

RewriteRules에는 둘 다 URL을 수정하는 마지막 규칙임을 나타내는 [L] 플래그가있어 RewriteRules 중 하나와 일치하는 URL에 리디렉션이 사용되지 않습니다.

두 번째 RewriteRule이 모든 요청을 catch하므로 Redirect가 작동하지 않습니다. 또한 또한 워드 프레스 자체의한다 RewriteCond/RewriteRule의 라인이 일을하기 전에 가야 물론 Manual

이 규칙에서 사용 가능한 플래그를보고하십시오

RewriteCond %{QUERY_STRING} p=2366 
RewriteRule . http://www.example.com [R=301,L] 

같은 RewriteRule의로 리디렉션 할 수 있습니다.

+0

고마워요. 그건 의미가 있습니다. 301 리디렉션이 쿼리 문자열과 함께 작동하지 않는 것 같습니다. 쿼리 문자열을 제거하고 직선 URL을 사용하면 301이 작동했습니다 (Base보다 위에있는 한). – SiriusPhil

+0

Dehalion의 답변이 포함 된 현재 .htaccess 코드를 pastebin.com에 업로드 한 다음 링크를 게시하여 확인할 수 있습니까? – Wireblue

0

Redirect 301 규칙을 RewriteBase 문 아래 줄로 이동하십시오.

+0

그게 작동하지 않았다 .. 그냥 쿼리 문자열없이 거기에 URL을 넣으면 작동하지 않았다. 문제는 301. – SiriusPhil

+0

의 쿼리 문자열과 관련이있는 것으로 보입니다. Dehalion의 대답이 더 나은 해결책 일 수 있다고 제안합니다. – Wireblue

관련 문제