2016-08-07 2 views
0

하위 디렉토리 domain.com/blog/에 Wordpress를 설치했습니다 후행 슬래시, Wordpress 포스트의 문제점은 domain.com/2 개의 버전에서 200 OK http를 제공합니다. 블로그/후 이름과 domain.com/blog/post-name/이리갈 301 후행 슬래시에서 마지막 슬래시로 리디렉션

내가 마지막에 슬래쉬 강제로 마지막에 슬래쉬 비 슬래시에서 301 리디렉션 할

때문에 후행 슬래시 버전 제공 200 OK 만

내 코드

# Force Trailing Slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/]+$ %{REQUEST_URI}/ [L,R=301] 

답변

0

코드의 문제점은 정규식에 있습니다 :^[^ /] + $

이 정규식이 너무 domain.com/blog 같은 문자열이 일치하지 않을, 어떤 슬래시없이 모든 문자열과 일치합니다.

# Force Trailing Slash 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} ^(.*)[^/]{1}$ 
RewriteRule (.*) $1/ [L,R=301] 

기본 wordpress htaccess file이 같이해야 사용하는 경우 : 그것은 마법처럼 작동하고

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    # Force Trailing Slash 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} ^(.*)[^/]{1}$ 
    RewriteRule (.*) $1/ [L,R=301] 


    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 

</IfModule> 
# END WordPress 
+0

감사에 봐 주시기 바랍니다 목표를 달성하는 가장 좋은 방법은 다음과 같다 해당 문제 http://stackoverflow.com/questions/38733574/6-htaccess-rewrites-remove-index-html-remove-html-force-non-www-force-trai 감사합니다. –

+0

이제 정적 문제 웹 페이지가 domain.com/articles가 아닌 domain.com/articles/로 리디렉션됩니다. 다른 게시물에 대한 세부 정보 고맙습니다. –

+0

죄송합니다. 정적 웹 페이지의 문제를 해결하지 못했습니다. 조금 더 지정할 수 있습니까? –