Apache Virtual Host-Weiterleitung von der https-Subdomäne zum Unterverzeichnis

Apache Virtual Host-Weiterleitung von der https-Subdomäne zum Unterverzeichnis

Wie leite ich Anfragen um, die anhttps://blog.example.comZuhttps://example.com/blog?

Ich habe die Apache-Dokumente gelesen, in denen es heißt, wann der Rewrite-Mod nicht verwendet werden sollte, und habe eine einfache Umleitung versucht, z. B.

Redirect https://blog.example.com https://example.com/blog

Aber wenn ich besuchehttps://blog.example.com, es leitet mich nicht weiter. Es wird nur ein Fehler mit einem Zertifikat angezeigt. Gibt es eine Möglichkeit, die HTTPS-Subdomäne umzuleiten? Es funktioniert einwandfrei mit HTTP, wenn ich so etwas verwende:

<VirtualHost *:80>
    ServerName blog.example.com
    Redirect / https://example.com/blog/
</VirtualHost>

Bedingungen wie diese:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^\.]+)\.example\.com$
RewriteRule ^/(.*)$ https://example.com/%1/$1 [R=301,L]

Funktioniert nur bei Verwendung von HTTP, nicht von HTTPS ...

Danke schön.

Antwort1

Ihre Konfiguration bezieht sich auf VirtualHost *:80, also auf den httpPort. Der Port für httpsist 443. Suchen Sie diese Konfiguration und wenden Sie die Umleitung auch dort an.

Antwort2

Ich denke, dass Sie dafür mod_alias verwenden können.

In Ihrem virtuellen Host blog.example.com:

RedirectMatch (.*)$ / https://example.com/blog/$1

https://httpd.apache.org/docs/2.4/mod/mod_alias.html

Antwort3

Wenn der Browser einen Zertifikatsfehler meldet, wird die Transaktion abgebrochenVordie Umleitung wird ausgelöst. Wenn Sie HSTS nicht verwenden, können Sie dies bestätigen, indem Sie durch den Fehler klicken, und die Umleitung wird wie gewohnt fortgesetzt. Der Fehler selbst kann verschiedene Gründe haben, und der Browser wird Ihnen mitteilen, welcher zutrifft. Der wahrscheinlichste Grund ist jedoch, dass Ihr Zertifikat nur für gültig ist example.comund keinen SAN-Eintrag für blog.example.com(oder für das Platzhalterzeichen *.example.com) hat. Um dies zu beheben, können Sie entweder das Zertifikat neu generieren, um diesen zusätzlichen Namen einzuschließen, oder Sie können ein zusätzliches Zertifikat erhalten und Ihre Serverkonfiguration anpassen, um dieses für die Subdomäne bereitzustellen. In beiden Fällen sollte Ihnen Ihr gewählter Zertifikatanbieter (CA) helfen können.

verwandte Informationen