2016-08-23 14 views
0

現在、.htaccessを使用してURLを書き換えようとしていますが、基本的にすべての接続をhttps://に強制し、後ろの.html拡張子も削除します。ここでSSLに強制的に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を取り除くための追加ルールが必要です。また、あなたが回避のmumtiple 301に一つにそのルールとwwwhttpsルールを組み合わせることができリダイレクト:

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] 
関連する問題