Frage Erzwingen von SSL und www-Subdomain für jeden URI, der mit .htaccess eingegeben wird?


Ich habe ein SSL-Zertifikat für die 'www' Subdomain einer Website, die wir bei example.com aufrufen werden.

Daher kann ich SSL erzwingen, aber wenn der Benutzer "www.example.com" nicht in seinen Browser eingibt, scheint das SSL-Zertifikat ungültig zu sein.

Ich möchte dies mit mod_rewrite-Regeln in einer .htaccess-Datei im Stammverzeichnis der Website erreichen.

Unabhängig davon, welchen URI der Benutzer eingibt (z. B. example.com, www.example.com, https://example.com, example.com/folder/file.html usw.), ich möchte den HTTPS erzwingen und die www-Subdomain, die natürlich den von ihnen bereitgestellten URI behält.

Ich habe mit der .htaccess-Datei und einigen Regeln herumgespielt, da ich bereits etwas recherchiert habe, aber ich habe nicht viel Erfahrung mit mod_rewrite oder .htaccess. Ich glaube, ich habe die SVN-Revision gefunden fast hat für mich gearbeitet, aber nicht ganz. Hier ist es:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTP_HOST} ^example.com [nc]
RewriteRule ^(.*)$ https://www.example.com/$1 [r=301,nc]

Versuche, nicht zu sehr über meine Akte zu lachen; Es ist hauptsächlich von Beispielen abgeleitet, die ich online gefunden habe.

Irgendwelche Hinweise werden geschätzt! =)


5
2018-02-20 16:08


Ursprung


Antworten:


Versuche dies:

RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301]

3
2018-02-20 16:10