2016-02-11 78 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

相關問題