2016-08-23 84 views
0

我想重写我的网址,现在使用.htaccess基本上我想强制所有连接到https://并且还删除任何尾随的.html扩展名。.htaccess强制SSL和删除文件名扩展

这里是我到目前为止,

RewriteEngine On 

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L] 

RewriteCond %{HTTP_HOST} ^www.%{HTTP_HOST}$ [NC] 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L] 


RewriteRule ^([^\.]+)$ $1.html [NC,L] 

这迫使用户使用HTTPS,但它不会从URL我要去哪里错了删除的.html?

回答

0

您需要额外的规则才能从URL中去除.html。此外,您可以在规则和wwwhttps规则转换成一个结合避免mumtiple 301重定向

RewriteEngine On 

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{THE_REQUEST} \.html[\s?] [NC] 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule ^(.*?)(?:\.html)?$ https://%1/$1 [R=301,L,NC,NE] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^(.+?)/?$ $1.html [L]