Url rewriting Nginx将url参数重写到子域
有许多不同的url参数,我希望重定向到子域 mydomain.com/blog/title-of-the-post->blog.mydomain.com/title-of-the-post 及 mydomain com/taxonomy/term/id->mydomain.com/idUrl rewriting Nginx将url参数重写到子域,url-rewriting,nginx,Url Rewriting,Nginx,有许多不同的url参数,我希望重定向到子域 mydomain.com/blog/title-of-the-post->blog.mydomain.com/title-of-the-post 及 mydomain com/taxonomy/term/id->mydomain.com/id 因此,逻辑基本上是重写,但我们希望获取并使用一些url。可以这样做吗?是的,您可以在重写时使用反向引用,例如: location /blog/ { rewrite ^/blog/(.*)$ http://b
因此,逻辑基本上是重写,但我们希望获取并使用一些url。可以这样做吗?是的,您可以在重写时使用反向引用,例如:
location /blog/ {
rewrite ^/blog/(.*)$ http://blog.mydomain.com/$1 permanent;
}
同样的事情也适用于你的另一次重写
更新:
如果要保留博客部分,则不再更改$uri,只更改$host,这样就更容易了:
location /blog/ {
rewrite ^ http://blog.mydomain.com/$uri permanent;
}
注:nginx标准变量列在
对于多个参数,您使用进一步的反向引用$2$3等等(只需确保您在正则表达式中要使用的部分周围有分组,即括号),例如:
这将与您博客url中的4位数年份相匹配,有关正则表达式和反向引用的更多信息,请参见示例谢谢。如果您想保留博客(blog.mydomain.com/blog/-内容标题),该怎么办?如果您有多个url参数,如:mydomain.com/blog/first/second/thrid->blog.mydomain.com/second/third,该怎么办
location /blog/ {
rewrite ^/blog/([0-9]{4})/(.*)$ http://blog.mydomain.com/$1/$2 permanent;
}