4 votes

Redirection par défaut de NGINX pour les domaines gérés

J'essaie de rediriger tous les domaines gérés sans directive de serveur vers une page parquée située dans la directive de serveur du domaine de la société.

Actuellement, j'ai ce qui suit qui ne redirigera que vers la page d'accueil car la même directive est également nécessaire pour transférer les requêtes NON-TLS du domaine de l'entreprise.

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name   _;

    return       301 https://company.com$request_uri;
}

J'ai besoin d'une directive serveur qui transfère toutes les requêtes qui ne sont pas de type company.com vers company.com/parked.php.

8voto

Tero Kilkanen Points 32968

Vous pouvez utiliser la configuration suivante :

server {
    listen       80;
    listen       [::]:80;
    server_name  company.com;

    return       301 https://company.com$request_uri;
}

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name   _;

    return 301 https://company.com/parked.php;
}

Ainsi, vous spécifiez un serveur virtuel pour votre company.com qui gère la redirection http -> https, et un serveur par défaut qui redirige vers la page parking. C'est un peu plus efficace que d'utiliser if directive.

2voto

Craig Miskell Points 3976

Vous souhaitez probablement quelque chose comme ceci :

if ( $host != 'company.com' ) {
   return 301 https://company.com/parked.php
}

NB : Si est considéré comme un mal dans nginx ( https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/ ), mais c'est l'une des rares façons sûres de l'utiliser.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X