如果没有子域名,Nginx 重写就无法工作吗?

如果没有子域名,Nginx 重写就无法工作吗?

我正在尝试重写特定的 URL,但除非子域名包含在 URL 中,否则似乎无法正常工作。例如,给出以下内容:

server {
  server_name .example.com ;
  listen  80  default;
  root  /usr/share/nginx/www/example/public;
  rewrite ^ /test redirect;
}

http://www.example.com/original正确地重定向到http://www.example.com/test。但是http://example.com/original却没有?

如果有帮助的话,我正在 Fedora 盒子上运行 nginx 1.0.11(定制)。

编辑:PS-我也尝试过,server_name example.com *.example.com但没有成功。

答案1

您可以尝试将任何请求重定向到 www.example.com 转到 example.com:

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

server {
    server_name example.com;
    location /original/ {
        rewrite ^/(.*) http://example.com/test redirect;
    }
    # rest of config here;
}

相关内容