8

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

这样做的推荐方法是什么?正则表达式还是有其他选择?

4

2 回答 2

21

以下代码片段以一般方式执行此操作,而无需对任何主机名进行硬编码(如果您的服务器配置处理多个域的请求,则很有用)。将此添加到您需要的任何服务器定义中。

if ($http_host ~ "\.$" ){
    rewrite ^(.*) $scheme://$host$1 permanent;
}

这利用了删除尾随点的事实(由Igor Sysoev指出)$host,而$http_host没有;所以我们可以匹配点$http_host并自动$host用于重定向。

于 2013-03-17T09:41:00.910 回答
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

重定向 - 返回带有代码 302 的临时重定向;如果替换行以 http://permanent 开头,则使用它 - 返回带有代码 301 的永久重定向

于 2013-03-16T22:19:46.307 回答