Avoir un nombre de parameters d’URL différents que je souhaite redirect vers un sous-domaine.
mydomain.com/blog/title-of-the-post -> blog.mydomain.com/title-of-the-post
et
mydomain-com / taxonomy / term / id -> mydomain.com/id
La logique est donc plutôt une réécriture, mais vous voulez récupérer et utiliser une partie de l’URL. Est-ce que cela peut être fait?
oui, vous pouvez utiliser des backreferences dans vos réécritures, par exemple:
location /blog/ { rewrite ^/blog/(.*)$ http://blog.mydomain.com/$1 permanent; }
et les mêmes choses fonctionnent pour votre autre réécriture
METTRE À JOUR:
Si vous voulez conserver la partie blog, vous ne changez plus le $ uri, seulement le $ host, cela devient alors plus facile:
location /blog/ { rewrite ^ http://blog.mydomain.com/$uri permanent; }
REMARQUE: les variables standard nginx sont listées sur http://wiki.nginx.org/HttpCoreModule#Variables
pour les parameters multiples, vous utilisez des références supplémentaires $ 2 $ 3 et ainsi de suite (assurez-vous que vous avez des regroupements, par exemple des parenthèses, autour des parties que vous souhaitez utiliser dans votre regex), par exemple:
location /blog/ { rewrite ^/blog/([0-9]{4})/(.*)$ http://blog.mydomain.com/$1/$2 permanent; }
qui correspondrait à une année à 4 chiffres dans l’URL de votre blog, voir par exemple http://www.regular-expressions.info/brackets.html pour plus d’informations sur les expressions régulières et les backreferences