我希望将一些不同的url参数重定向到子域。
mydomain.com/blog/title-of-the-post - > blog.mydomain.com/title-of-the-post
和
mydomain-com / taxonomy / term / id - > mydomain.com/id
所以逻辑几乎是一个重写,但想抓住并使用一些网址。可以这样做吗?
答案 0 :(得分:3)
location /blog/ {
rewrite ^/blog/(.*)$ http://blog.mydomain.com/$1 permanent;
}
同样的事情适用于你的其他重写
更新:
如果你想保留博客部分,你不再改变$ uri,只有$ host,它会变得更容易:
location /blog/ {
rewrite ^ http://blog.mydomain.com/$uri permanent;
}
注意:nginx标准变量列在http://wiki.nginx.org/HttpCoreModule#Variables
对于多个参数,你使用进一步的反向引用$ 2 $ 3等等(只是确保你想要在正则表达式中使用的部分周围有分组,即括号),例如:
location /blog/ {
rewrite ^/blog/([0-9]{4})/(.*)$ http://blog.mydomain.com/$1/$2 permanent;
}
与博客网址中的4位数年份匹配,例如,请参阅http://www.regular-expressions.info/brackets.html了解有关正则表达式和反向引用的更多信息