2016-02-11 128 views
0

我一直在玩我的.htaccess文件,目前为止这是行不通的。.htaccess:删除扩展名并强制使用拖动斜杠(seo友好)

我试图强制.www前缀,同时删除.html扩展名并在URL的末尾添加/强制结尾的斜杠。

实施例(与test.html文件):

http://www.domain.com/test.html
http://www.domain.com/test
http://domain.com/test.html
http://domain.com/test
= http://www.domain.com/test/

.htaccess

Options +FollowSymLinks +MultiViews 
RewriteEngine on 
Rewritecond %{HTTP_HOST} ^laforgenumerique.fr$ 
Rewriterule ^(.*) http://www.laforgenumerique.fr/$1 [QSA,L,R=301] 

#REMOVE DOT HTML 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.html [L] 

#FORCE TRAILING SLASH 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/]+$ %{REQUEST_URI}/ [L,R=301] 

#CUSTOM ERROR DOCUMENT 
ErrorDocument 400 http://www.laforgenumerique.fr/404.html 
ErrorDocument 401 http://www.laforgenumerique.fr/404.html 
ErrorDocument 403 http://www.laforgenumerique.fr/404.html 
ErrorDocument 404 http://www.laforgenumerique.fr/404.html 
ErrorDocument 500 http://www.laforgenumerique.fr/404.html 

请帮忙!

主持人:OVH

回答

0

您写道:

#REMOVE DOT HTML 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.html [L] 

#FORCE TRAILING SLASH 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/]+$ %{REQUEST_URI}/ [L,R=301] 

看来你正试图将两种不同的规则。 [L]后缀表示这是最后一条规则;即使它们合适,以下所有规则也会被忽略。 你可以试试这样:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ www.$1 
RewriteRule ^(.*).html$ $1/ [L] 
+0

什么是'www。$ 1.html'? –

+0

这是行不通的:( – user1480883

+0

如果最后一条规则是RewriteRule ^(。*)。html $ $ 1/[L] – Str1ker

相关问题