Die Standard-Apache-Konfiguration stimmt nicht mit übereinstimmenden Anforderungen überein
749
cedmans
Umgebung
Ubuntu 16.04 / Apache 2.4.18
Problem
Eine meiner Apache-Konfigurationen stimmt mit jeder Anfrage überein, unabhängig davon, ob der Servername übereinstimmt. Sogar verschiedene Domains passen zusammen, nicht nur Subdomains. Wie kann ich feststellen, warum diese Konfiguration mit allem übereinstimmt?
Einzelheiten
Ich habe zwei aktive Konfigurationen 000-defaultund eine Konfiguration für eine meiner Domains.
Das Problem ist, wenn ich die Konfiguration für diese eine Domäne aktiviere, dass die Konfiguration alle Anforderungen verarbeitet, unabhängig davon, ob ich eine gefälschte Unterdomäne oder eine völlig andere Domäne verwende, die so eingerichtet ist, dass sie auf die IP dieses Servers verweist.
Um klar zu sein, ich habe noch keine Konfiguration für diese andere Domäne, daher sollte sie mit nichts übereinstimmen.
Die Konfigurationen scheinen in der richtigen Reihenfolge geladen zu werden. Daher sollte die 000-Standardeinstellung die Standardkonfiguration für nicht übereinstimmende Anforderungen sein.
Da meine andere Domain nicht mit dem ersten übereinstimmt, RewriteCondwird nur ein leeres 200 zurückgegeben. Daher ist es wahrscheinlich nicht notwendig, darauf zu achten, dass diese HTTPS-Route durch nichts bedient wird:
# curl -I http://example.com HTTP/1.1 302 Found <== This is good, that redirects as expected $ curl -I http://fake.example.com HTTP/1.1 200 OK <== That's bad, it hit the example.com config, failed the RewriteCond, and just returned a blank 200 $ curl -I http://other-domain.com HTTP/1.1 200 OK <== Also bad, same reason as above
Apache scheint Sachen in der richtigen Reihenfolge zu laden:
# apache2ctl -S AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/sites-enabled/000-default.conf:1 VirtualHost configuration: *:* default (/etc/apache2/sites-enabled/000-default.conf:3) *:80 example.com (/etc/apache2/sites-enabled/example-com.conf:1)
Mit dieser Ladereihenfolge 000-defaultsollten nicht übereinstimmende Sites gehandhabt werden. Dies ist jedoch nicht der Fall. Kann jemand den Deal mit meiner Config sehen, der dies verursacht?
Ich weiß nicht, ob dies etwas anderes als drei Vorschläge zu 000-default beheben wird ... Erstens erfordert die 2.4.x-Zeile von Apache keine Anweisung NameVirtualHost (und sie ist tatsächlich veraltet). Zweitens würde ich ersetzen mit . Die meisten Konfigurationen, die ich sehe, haben diese Syntax sogar für 000-default. Drittens möchten Sie möglicherweise (a2dissite) 000-default deaktivieren und erneut aktivieren (a2ensite), um sicherzustellen, dass es tatsächlich aktiviert ist (vergessen Sie nicht, Apache offensichtlich neu zu starten).
Anaksunaman vor 7 Jahren
0
Nun, was Sie gesagt haben, ist genau das, was es behoben hat. Wahrscheinlich diesen Port angeben. Ich gebe zu, dass mein Apache-Fu schwach ist, und ich danke Ihnen vielmals für Ihre Unterstützung.
cedmans vor 7 Jahren
0
Ja, mein Verdacht ist auch der Hafen. In jedem Fall sind Sie herzlich willkommen. Ich bin froh, dass es behoben ist. :-)
Anaksunaman vor 7 Jahren
0
1 Antwort auf die Frage
0
Anaksunaman
Ich würde vorschlagen, drei Dinge in Bezug auf die 000-Standard-Konfigurationsdatei zu betrachten:
Die 2.4.x-Zeile von Apache erfordert nicht die NameVirtualHost-Direktive (und sie ist eigentlich veraltet), daher würde ich sie entfernen.
Ich würde ersetzen <VirtualHost *>mit <VirtualHost *:80>. Die meisten Konfigurationen, die ich sehe, haben diese Syntax sogar für 000-default. Wenn Sie dieses Format nicht verwenden, kann dies den für Anforderungen verwendeten Host beeinträchtigen.
Sie sollten die Konfigurationsdatei 000-default deaktivieren (a2dissite) und erneut aktivieren (a2ensite), um sicherzustellen, dass sie tatsächlich aktiviert ist (vergessen Sie nicht, auch Apache neu zu starten).