2017-08-19 7 views
0

Ich habe meine Hauptdomain und eine Subdomain. Subdomain befindet sich in einem Unterverzeichnis im Stammverzeichnis der Hauptdomäne und kann nicht geändert werden. Die Hauptdomäne verfügt über SSL, die Subdomäne jedoch nicht.htaccess Rewrite Regeln - Domain/Subdomain https/www

Jetzt versuche ich https und www für die Hauptdomain zu zwingen und keine https und keine www für die Sub-Domain zu erzwingen. So am Ende abgesehen von der Haupt-Domain, wie es versucht, zugegriffen werden soll, sollte so weit nach oben 2. umleiten, http://sub.example.com

Alle anderen möglichen Kombinationen sein sollten sie für den Zugriff auf https://www.example.com und gleichzeitig Sub-Domain umleiten sollte ich bin erfolgreich um dies für die meisten Möglichkeiten zu tun, aber ich versäume es für den Fall, wenn ich auf die Subdomain mit https://sub.example.com zugreifen. Es wird nicht auf die HTTP-Version umgeleitet, sondern es wird versucht, die Seite über https zu laden, der Browser löst die Sicherheitswarnung über SSL aus und wenn ich fortfahre, lädt es den Inhalt der Hauptdomänen-Site über die Subdomain und die unsichere Warnung im Browser.

Im Folgenden sind die htaccess-Regeln, die ich versuche, auf dem htaccess im Stammverzeichnis, die sowohl die Haupt-Site als auch die Sub-Domain betrifft.

Wie kann man sie verbessern und das gewünschte Ergebnis erzielen?

RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} sub\.example\.com [NC] 
RewriteRule ^(.*)$ http://sub.example.com/$1 [R=301,L] 

RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} sub\. [NC] 
RewriteRule ^(.*)$ http://sub.example.com/$1 [R=301,L] 

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

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

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

Antwort

1

Um nur die Haupt-Domain zu https umleiten, können Sie die folgende Regel verwenden:

RewriteEngine on 

#https to http (subdomain) 
RewriteCond %{HTTPS} on 
RewriteCond %{HTTP_HOST} ^sub.example.com$ 
RewriteRule^http://sub.example.com%{REQUEST_URI} [NE,L,R] 
#main domain 

RewriteCond %{HTTP_HOST} ^example\.com$ [OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(example\.com)$ 
RewriteRule^https://www.%1%{REQUEST_URI} [NE,L,R]