前言
本设计的背景为:使用CloudFlareCDN且开启国家地区识别码传递,没有前置代理,程序为带有伪静态的PHP
本设计的目标为:主页可以正常浏览,特定路径(购买页)会被重定向走
实现结果:独角数卡
- 中国大陆IP访问,除了/buy下的商品详情页会被强制跳转到提示页,其他主页和后端正常
- 非中国大陆IP访问,一切正常
另外建议关闭CloudFlare的全局缓存
代码实现
独角数卡官方的NGINX伪静态规则如下
location / {
try_files $uri $uri/ /index.php$is_args$query_string;
}
根据代码理解,它是在对应路径尝试三种文件来响应
修改后代码【直接在宝塔网站的伪静态规则中加,不要直接去宝塔网站的配置文件里面加】
location /buy {
if ( $http_cf_ipcountry = "CN") {
return 302 https://shop.blueskyxn.com/china.html;
}
try_files /buy/$uri /buy/$uri/ /buy/index.php$is_args$query_string $uri $uri/ /index.php$is_args$query_string;
}
location / {
try_files $uri $uri/ /index.php$is_args$query_string;
}
代码讲解:在原伪静态规则上面加,优先级问题
然后需要把后面的改写一下复制上面
逻辑是判断是不是CN,是就跳转,不是就继续运行
然后tryfile的文件要修改,因为我的路径是/buy,所以要给他补上路径
如果不补,就会出现打不开或者全部被跳转等异常现象
Comments NOTHING