2016-08-23 2 views
0

Ich versuche meine URL im Moment mit .htaccess neu zu schreiben Ich möchte im Grunde alle Verbindungen zu https: // erzwingen und auch alle nachfolgenden .html Erweiterungen entfernen..htaccess erzwinge SSL und entferne Dateinamenserweiterungen

Hier ist, was ich bisher habe,

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] 

Dies zwingt den Benutzer https zu verwenden, aber es entfernt nicht die .html aus der URL, wo werde ich da falsch?

Antwort

0

Sie benötigen eine zusätzliche Regel zum Entfernen von .html von URLs. Außerdem können Sie diese Regel kombinieren und www und https Regeln in ein bis vermeiden mumtiple 301 umleitet:

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] 
Verwandte Themen