Wir haben ein paar Subdomains eingerichtet, und ich möchte einige Apache-Konfigurationen vereinfachen - zumal diese Subdomains volatil sind. Wie auch immer, ich versuche eine Umschreibungsregel zu bekommen, die den Host einschließt.
Bisher habe ich:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*).net.au$
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L]
Dies basiert auf https://stackoverflow.com/questions/3634101/url-rewriting-for-different-protocols-in-htaccess und http://httpd.apache. org/docs/2.4/rewrite/vhosts.html
Allerdings wird das Muster in der ersten Bedingung nicht in die umgeschriebene Adresse geschrieben, und ich werde am Ende an .net.au/wo auch immer gesendet (lasse mich nicht mit dem https voran) - habe ich verpasst etwas?
Ausführen von Apache 2.4 auf Ubuntu 14.04
Der von Ladadadada vorgeschlagene einfache Fall funktioniert, wenn der Domänenname zwischen dem angeforderten Host und dem beabsichtigten Host identisch ist:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=302,L]
Eine weitere Schwierigkeit besteht jedoch darin, dass ich auch http://sub-domain.local
auf http://sub-domain.net.au
umleiten muss - die Verwendung von %{HTTP_HOST}
wäre daher nicht ausreichend.
Ich habe mir einige Beispiele noch einmal angesehen und festgestellt, dass die Rückreferenz% 1 offenbar nur für RewriteCond gilt, direkt vor RewriteRule.
Ich habe die Dinge neu geordnet:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(.*)(.local|.net.au)$
RewriteRule ^(.*)$ https://%1.net.au$1 [R=302,L]
Und die Weiterleitungen funktionieren hervorragend.