Nginx指向子域到子文件夹

时间:2014-05-19 20:59:04

标签: nginx url-rewriting

我希望http://name.domain.com/指向http://www.domain.com/name

只需注意,即可重定向到该位置,但只需指向该位置即可。

因此,当我导航到http://name.domain.com时,网站会显示来自http://www.domain.com/name的内容

到目前为止我尝试了什么:

server{
  listen 80;
  server_name name.domain.com;

  rewrite ^/name(.*) http://name.domain.com/$1 permanent;    
}

结果是nginx返回 404 not found 错误。

修改
我希望将http://www.domain.com/name的内容映射到http://name.domain.com 因此,当我导航到http://name.domain.com时,我实际上会从http://www.domain.com/name

中检索内容

3 个答案:

答案 0 :(得分:1)

实际上你需要proxy_pass

server{
  listen 80;
  server_name blog.domain.com;

  location = / {
    proxy_pass http://127.0.0.1/blog;
    proxy_set_header Host www.domain.com;
  }

  location / {
    proxy_pass http://127.0.0.1/blog/;
    proxy_set_header Host www.domain.com;
  }
}

此处向blog.domain.com的请求转到www.domain.com/blog(没有尾随斜杠)并向blog.domain.com/a-title请求www.domain.com/blog/a-title

答案 1 :(得分:0)

这应该有效:

server {
    listen 80;
    server_name name.domain.com;
    rewrite ^(.*) http://www.domain.com/name$1 permanent;
}

答案 2 :(得分:0)

你试过这个吗?

location / {
    proxy_pass $scheme://domain.com/name;
    proxy_redirect $scheme://domain.com/name/ /;
}

它适用于我,除了我无法弄清楚如何只允许通过代理访问目录,并拒绝直接访问如domain.com/name