只允许域名访问,禁止ip方式访问
方法一:直接40X
判断host是否是www.xxx.cn,不是的话直接403
server{
listen 80;
server_name www.xxx.cn ;
#server_name localhost;
if ($host != 'www.xxx.cn'){
return 403;
}
直接无法访问,显示403,非常OK。
方法二:给我跳回来
这个方法无非就是当使用IP访问时,还是跳回自己的域名,还能作为影(引)流之主,具体形式如下。
server{
listen 80;
server_name www.xxx.cn ;
}
.....
.....
server {
listen 80 default_server;
server_name _;
rewrite ^(.*) http://www.xxx.cn permanent;
}
可以从上图看到直接IP访问时先301再跳转到www.xxx.cn。
方法三:直接返回值
当IP访问时直接返回500,也不用判断host。(可把400改成404或502等错误码)
server
{
listen 80 default_server;
server_name _;
return 500;
}
也可以是这样,注意观察与上面有何不同哦。
server {
listen 80 default;
server_name "";
return 500;
}
在这里,我们设置的主机名为字符串以匹配未定义的“host”头的请求,并且返回了一个nginx特有的,并且返回500,nginx从0.8版本之后,这已成为主机名默认的设置,所以可以省略“sever_name”,可简化为下面形式。
server {
listen 80;
return 500;
}
最后更新于 2023-10-18 17:35:58 并被添加「」标签,已有 1695 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处