it-swarm.com.de

Konfigurieren Sie die virtuellen Apache-Hosts - alle Unterdomänen bis 404

Es ist das erste Mal, dass ich versuche, Apache so zu konfigurieren, dass ich hoffe, dass Sie mir helfen können.

Das möchte ich erreichen:

  • Alle undefinierten Subdomains sollten zu nicht gefunden führen, wenn sie nicht definiert sind
  • Der Stammordner sollte niemals zugänglich sein

Das habe ich bisher:

my.conf

ServerName server1 (is hostname)

ServerSignature off
ServerTokens prod

Options -Includes
Options -ExecCGI

sites-available/default

<VirtualHost *:80>
    ServerAdmin [email protected]

    DocumentRoot /htdocs

    <Directory />
            Options None
            Order deny,allow
            Deny from all
    </Directory>

    <Directory /htdocs/>
            Options -Indexes -FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

    ErrorLog ${Apache_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

sites-available/example

<VirtualHost *:80>
    ServerAdmin [email protected]

    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /htdocs/example

    ErrorLog ${Apache_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

Nun, meine Fragen sind:

  • Gilt das "Verzeichnis /" aus der Standardkonfiguration auch für die example.com-Site? Oder muss ich es auch da reinstecken? Oder soll es lieber in der my.conf sein?
  • Dieselbe Frage für "Directory/htdocs /" - sollte ich das auch in die example.com-config stellen? Natürlich wie "Directory/htdocs/example /".
  • Momentan führt jede Subdomain von example.com in das Standardverzeichnis. Wie kann ich das verhindern? Nur die Server IP sollte dahin führen - wenn überhaupt.
1
sleepless

Für undefinierte Subdomains können Sie einen neuen Virtualhost NACH allen bekannten Subdomain.example.com Virtualhosts hinzufügen.

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

Redirect 404 / antwortet bei jeder Anfrage mit "404 Not found".


Umfang der Konfigurationsanweisungen

Direktiven können serverweit oder auf bestimmte Verzeichnisse, Dateien, virtuelle Hosts usw. beschränkt sein. Verzeichnis, DirectoryMatch, Dateien, FilesMatch, If, IfDefine, IfModule, IfVersion, Standort, LocationMatch, Proxy, ProxyMatch und VirtualHost werden als Konfigurationsabschnitt Container) bezeichnet : Anweisungen in ihnen wirken sich nur im Container aus.

Im folgenden Beispiel wirken sich "Alle verweigern" auf /htdocs/private.html und "Options -Indexes" auf "/ htdocs" aus, jedoch nur in VirtualHost mit Servername example.com.

<VirtualHost *:80>
    ServerName example.com
    <Directory /htdocs/>
        Options -Indexes
        <Files private.html>
           Require all denied
        </Files>
    </Directory>
<VirtualHost *:80>
0
Esa Jokinen