我有一个测试版服务器,beta.domain.com
它运行良好,可用于测试目的。但是,由于它是我生活网站的完整镜像,因此它会接受对用户的销售,并让搜索引擎抓取它,因此我想要做的是将测试版限制在某些 IP(家庭和办公室),并且所有其他尝试访问它的人都将被重定向到www.domain.com
我为这个网站提供的主机运行的是 nginx,并且经过了高度定制,因此我无法实现我通常所期望的功能,但是在他们的支持文档中,他们告诉我如何从 www.domain.com 重定向到 domain.com。他们还说:
子域名将继承顶级域名的 Nginx 重写和配置规则。如果需要为子域名制定特定规则,可以使用 $host 的条件语句
将 www.domain.com 重定向到 domain.com 的主机示例
set $redirect "0";
if ($host ~* "^(.+)\.domain\.com$") { set $cursubdomain $1; }
if ($host != www.$server_name) { set $redirect "go"; }
if ($cursubdomain = "") { set $redirect "go${redirect}"; }
if (!-d $root_dir/$cursubdomain) { set $redirect "go${redirect}"; }
if ($redirect = "gogo") {
rewrite ^(.*)$ $my_http://www.$host$1 permanent;
}
我认为从上面的内容来看,这可能对重定向有好处
if ($host ~* "beta\.domain\.com$") {
set $redirect "1";
}
if ($redirect = "1") {
rewrite ^(.*)$ $my_http://www.$host$1 permanent;
}
如果这确实是正确的方法,不太确定进行 IP 检查的最佳方法,例如
if ($remote_addr != 127.0.0.1) {
set $remoteredirect "1";
}
if($remoteredirect = "1") {
if ($redirect = "1") {
rewrite ^(.*)$ $my_http://www.$host$1 permanent;
}
}
这是解决此问题的最佳方法吗?还是我是否会在表现上牺牲自己?或者它是否会起作用?