2012-08-02 3 views
1

최근에 asked a question about getting a specific Rewrite to work입니다. 나는 그것을 위해 작동하는 대답을 얻었고, 그것을 나의 사이트 중의 1 개에 사용했다. 이제이 접근법을 재사용하려고 노력하고 있지만, 논리가 Wordpress Rewrite 섹션으로 떨어지고 있고 리디렉션이 전혀 실행되지 않고 있음을 발견했습니다..htaccess RewriteRule을 사용하지만 일치하는 Wordpress를 건너 뜁니다.

# BEGIN Redirect deprecated site links to wp equivalent 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^news=13$ 
RewriteRule ^news_comments.php$ http://example.com/example-directory/ [R=301] 
RewriteCond %{QUERY_STRING} ^news=51$ 
RewriteRule ^news_comments.php$ http://example.com/example-page.php [R=301] 
</IfModule> 
# END Redirect deprecated site links to wp equivalent 

# 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] 
</IfModule> 

# END WordPress 

나는 분명히 워드 프레스 재 작성이 필요하지만, 나는 트리거와 워드 프레스 규칙 건너 뛸 수 나는 상단에 지정하는 것들에 대한 필요가있다.

나는 주위 검색과 같은 것을 사용하는 몇 가지 제안을 본 적이

...

... 
RewriteCond %{QUERY_STRING} ^news=51$ 
RewriteRule ^news_comments.php$ http://example.com/example-page.php [R=301] 
RewriteRule ^news_comments.php$ - [L] 
</IfModule> 

...하지만 난 그냥 그것을 얻이 수없는 것. 어떤 아이디어?

답변

1

리디렉션의 끝에 [L] 플래그를 추가해야합니다. 그렇지 않으면 URI가 나머지 규칙을 따라 계속 진행되고 끝에 리디렉션이 발생합니다. 그때까지, wordpress는 이미 URI로 그 길을 가졌습니다.

RewriteCond %{QUERY_STRING} ^news=13$ 
RewriteRule ^news_comments.php$ http://example.com/example-directory/ [R=301,L] 
RewriteCond %{QUERY_STRING} ^news=51$ 
RewriteRule ^news_comments.php$ http://example.com/example-page.php [R=301,L] 
+0

감사합니다. Jon! 이 물건에 놀랍군요! – user932885

관련 문제