Question nginx rewrite base url


Je voudrais l'URL racine

http://www.example.com

rediriger vers

http://www.example.com/something/else

Ceci est dû au fait que certains plugins WP étranges définissent toujours un cookie sur l’URL de base, ce qui ne me permet pas de le mettre en cache.

J'ai essayé cette directive:

location / {
    rewrite  ^  /something/else  break;
}

Mais 1) il n’ya pas de redirection et 2) les pages commencent à envoyer plus de 1 000 requêtes à mon serveur. Avec celui-ci:

 location / {
        rewrite  ^  http://www.example.com/something/else  break;
    }

Chrome signale une boucle de redirection.

Quelle est l'expression correcte à utiliser?


8
2018-03-24 23:20


origine




Réponses:


Vous voulez vraiment faire correspondre exactement l'URL racine dans votre bloc d'emplacement, pas "absolument tout":

location = / {
    rewrite ^ /something/else break;
}

5
2018-03-24 23:44





Cela devrait faire le travail:

location / {
   rewrite  ^/$  /something/else  break;
}

1
2018-03-24 23:30





le rewrite déclaration effectue une réécriture interne par défaut, sauf si la cible est une URL absolue ou si vous définissez la redirect ou permanent drapeaux. Quelque chose comme ceci renverrait une redirection HTTP au client:

rewrite ^/$ /something/else redirect;

1
2018-03-25 06:10





Ou vous pouvez faire ceci:

location = / {
     rewrite ^/$    http://example.com/an/other/path;
}

Nginx envoie automatiquement une redirection HTTP 302 au client lorsque l'URL de réécriture commence par le schéma "http".


0
2018-03-25 14:21