Nginx - 重定向域尾随点

时间:2013-03-16 17:27:22

标签: nginx

如何重定向“http://domain.com”。使用Nginx“http://domain.com”?

建议的方法是什么?正则表达式还是有其他选择吗?

2 个答案:

答案 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