3 votes

nginx rewrite subdomain à un fichier comme une variable

Comment obtenir le sous-domaine comme variable à ajouter dans une réécriture ?

Bonjour .exemple.com devrait aller à exemple.com/user.php?u= Bonjour mais s'affiche toujours comme juste Bonjour .exemple.com

Je suis actuellement en train de faire http://example.com/users/ Bonjour mais aimerait avoir des noms de domaine de style Tumblr pour les utilisateurs.

rewrite ^/users/(.*)$ /user.php?u=$1 last;

De même, s'il existe des pages comme /settings/ après le sous-domaine hello.example.com/settings/, je devrai réécrire vers un settings.php.

4voto

Tieme Points 101

Deux choses. Premièrement, vous devez lire la variable host pour obtenir le sous-domaine et le définir dans une variable qui sera utilisée plus tard.
J'ai utilisé la variable $sub_domain et j'ai ensuite ajouté la variable à l'URI.

if ($host ~* (.*)\.example\.com) {
     set $sub_domain $1;
     rewrite ^/user.php$ /user.php?u=$sub_domain
}

La ligne de réécriture doit encore être affinée. J'ai donné un exemple ici. Référez-vous à la fonction intégrée de nginx documentation des variables pour les options disponibles.

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