2017-10-03 23 views
1

J'ai une configuration nginx où je suis en train de définir Redirections de manière ci-dessous -redirection nginx ne fonctionne pas pour plusieurs conditions

rewrite ^/my/(.*)$ /my/ redirect; 

rewrite ^/help-and-support/(.*)$ /about/help-and-support redirect; 

rewrite ^/about/terms-and-conditions/(.*)$ /about/terms-and-conditions redirect; 

rewrite ^/about/privacy-policy/(.*)$ /about/privacy-policy redirect; 

Je dois ajouter un paramètre plus qui devrait ressembler comme ci-dessous -

Mais quand j'ajoute tout ce qui est au dessus de "rewrite" sous la directive "location" dans la configuration de nginx, il redirige chaque demande vers www.abcd.com.

J'ai essayé d'ajouter si la condition aussi, mais ils ne fonctionnent pas.

Mon objectif est que www.exmaple.com et toute autre URL de ce domaine différente de celles définies ci-dessus doivent être redirigées vers www.abcd.com.

Pouvez-vous s'il vous plaît m'aider ici?

Répondre

0

Nginx ne s'arrête pas après avoir trouvé le premier match, de l'arrêter d'essayer de trouver le prochain regex qui correspondent à utiliser la commande break comme ceci:

rewrite ^/my/(.*)$ /my/ break; 

sur le site officiel: http://wiki.nginx.org/HttpRewriteModule#rewrite

break - arrête de traiter l'ensemble actuel de directives ngx_http_rewrite_module comme avec la directive break;

+0

Salut Sed, merci pour votre réponse. J'ai ajouté une pause aussi, mais après la pause, elle ne vérifie pas plus loin. Pouvez-vous s'il vous plaît me dire comment puis-je ajouter plusieurs réécrire au même endroit? – arka