如何重定向“http://domain.com”。使用Nginx“http://domain.com”?
建议的方法是什么?正则表达式还是有其他选择吗?
答案 0 :(得分:14)
以下代码段以一般方式执行此操作,无需对任何主机名进行硬编码(如果您的服务器配置处理多个域的请求,则非常有用)。在您需要的任何服务器定义中添加它。
if ($http_host ~ "\.$" ){
rewrite ^(.*) $scheme://$host$1 permanent;
}
这利用了Igor Sysoev指出的事实$host
删除了尾随点,而$http_host
没有删除;因此,我们可以匹配$http_host
中的点,并自动使用$host
进行重定向。
答案 1 :(得分:0)
您需要使用正则表达式。
server {
listen 80;
server_name domain.com.WHATEVER, domain.com.WHATEVER-2, domain.com.WHATEVER-3;
rewrite ^ $scheme://domain.com$request_uri? permanent;
}
来自:http://wiki.nginx.org/HttpRewriteModule
redirect - 返回代码为302的临时重定向;如果替换行以http://开头,则使用它 permanent - 返回永久重定向,代码为301