我正在尝试重写特定的 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;
}