web-dev-qa-db-fra.com

Configurer les hôtes virtuels Apache - tous les sous-domaines à 404

C'est la première fois que j'essaie de configurer Apache, alors j'espère que vous pourrez m'aider.

C'est ce que je veux réaliser:

  • Tous les sous-domaines non définis doivent conduire à non trouvé s'ils ne sont pas définis
  • Le dossier racine ne devrait jamais être accessible

Maintenant, voici ce que j'ai jusqu'à présent:

my.conf

ServerName server1 (is hostname)

ServerSignature off
ServerTokens prod

Options -Includes
Options -ExecCGI

sites-available/default

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    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 webmaster@localhost

    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>

Eh bien, mes questions sont:

  • Le "Répertoire /" de default-config s'applique-t-il également sur le site example.com? Ou dois-je le mettre là aussi? Ou devrait-il plutôt être dans le my.conf?
  • Même question pour "Directory/htdocs /" - devrais-je mettre cela aussi dans example.com-config? Bien sûr, comme "Directory/htdocs/example /" ensuite.
  • Pour le moment, chaque sous-domaine de example.com mène au répertoire par défaut. Comment puis-je empêcher ça? Seule l'adresse IP du serveur doit y conduire - voire pas du tout.
1
sleepless

Pour les sous-domaines non définis , vous pouvez ajouter un nouvel hôte virtuel APRÈS tous les hôtes virtuels connus de subdomain.example.com.

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

Redirect 404 / répond avec "404 non trouvé" à chaque demande.


Portée des directives de configuration

Les directives peuvent s’appliquer à l’ensemble du serveur ou être limitées à des répertoires, fichiers, hôtes virtuels, etc. Répertoire, DirectoryMatch, Fichiers, FileMatch, If, IfDefine, IfModule, IfVersion, Location, LocationMatch, Proxy, ProxyMatch et VirtualHost sont appelés Conteneurs de section de configuration : les directives qu’elles contiennent n’affectent que l’intérieur du conteneur.

Dans l'exemple suivant, "Exiger tout ce qui est refusé" a une incidence sur /htdocs/private.html et "Options -Indexes" affecte "/ htdocs", mais uniquement dans VirtualHost avec 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