2016-10-14 4 views
0

Ich hosste mehrere Sites auf demselben Apache-Server (und IP-Adresse) mit der Standardmethode virtueller Hosts. So habe ich Ordner wie die folgenden: /var/www/website1.com/, /var/www/website2.com/, und so weiter.Lassen Sie die Website nur über die richtige Domain anzeigen

Ich weiß, wie Sie das DocumentRoot ändern, so dass Anforderungen für eine bestimmte Domäne auf das entsprechende Verzeichnis verweisen, aber das Problem ist, dass die Website auch über 123.456.789.000/website1.com/ zugänglich ist, wobei 123.456.789.000 die IP-Adresse des Servers ist.

Dies ist besonders schlecht, weil es Laravel gebaut ist verwenden, so dass die DocumentRoot tatsächlich /var/www/website1.com/public ist, mit der Haupt website1.com Verzeichnis zu sein, wo Laravel speichern Dateien und andere private Dateien Config. Es ist derzeit möglich, diese Dateien zu sehen, indem Sie sie unter der IP-Adresse aufrufen (zum Glück ist das kein kritisches Projekt).

Also wie stelle ich sicher, dass eine Website nur unter website.com und nicht 123.456.789.000/website.com/ besucht werden kann? Ich möchte nicht unbedingt, dass dies global gilt - ich möchte in der Lage sein, auf Site-Basis zu wählen, ob es nur über den richtigen Domain-Namen erreichbar sein soll.

Antwort

0

Sie müssen eine Umleitung hinzufügen, die Kunden auf Ihren ‚kanonischen‘ Domain-Namen sendet

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

(Ich weiß nichts über ‚Laravel‘, aber die Speicherung config/private Dateien in Web zugänglich Klänge Verzeichnisse wirklich schlecht)

Verwandte Themen