2017-05-09 6 views
2

Ich verwende ein WordPress Multisite-Netzwerk, mit dem Benutzer optional einen benutzerdefinierten Domänennamen auf ihren Websites verwenden können. Benutzern, die sich gegen die Verwendung einer benutzerdefinierten Domäne entscheiden, wird eine Subdomäne der WP-Installation zugewiesen (z. B. fred.example.com, wobei example.com die URL ist, auf der das WP-Multisite-Netzwerk installiert ist)..htaccess-Regel, um SSL nur für bestimmte Domänen zu erzwingen

Ich habe einen Platzhalter SSL für die Hauptdomäne konfiguriert, aber ich habe keine Zertifikate für benutzerdefinierte Domänennamen verfügbar.

Was ich brauche, ist eine Htaccess-Regel, Verkehr auf https zu erzwingen, wenn die Anfrage entweder example.com oder *.example.com ist, aber nicht, wenn die Anfrage mit einer benutzerdefinierten Domäne kommt.

Es sollte wie folgt funktionieren:

  • http://example.com/*https://example.com/*
  • http://foo.example.com/*https://foo.example.com/*
  • http://customdomain.com/*http://customdomain.com/*

Antwort

2

Probieren Sie etwas wie die folgenden in der Nähe der Spitze Ihrer .htaccess Datei. Mit mod_rewrite:

RewriteEngine On 
RewriteCond %{HTTPS} !on 
RewriteCond %{HTTP_HOST} ^(?:[a-z0-9-]+\.)?example\.com 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L] 

Was dies sagt, ist ... Für alle Anfragen, die nicht HTTPS und dieses Spiel sind example.com oder <subdomain>.example.com dann umleiten zu https:// auf demselben Host, gleichen URL-Pfad.

Beachten Sie, dass dies www.<subdomain>.example.com nicht zulässt (wovon ich annehme, dass Ihr SSL-Zertifikat ohnehin nicht abgedeckt wird).

Ändern Sie die 302 (vorübergehend) zu 301 (permanent) nur, wenn Sie sicher sind, dass es funktioniert OK.

+0

Dies erzeugt einen internen Serverfehler von 500. Syntaxfehler vielleicht? –

+0

Sorry, das letzte 'RewriteCond' sollte' RewriteRule' sein! (Just updated.) – MrWhite

+0

So funktioniert das für den Stamm der Hauptwebsite und Subdomains, aber für Ordner/Seiten in der Site wird nicht umgeleitet. Beispiel: 'http: // example.com/2017/05/01/hallo-world /' leitet nicht auf https um –

Verwandte Themen