我正在寻找编写一个简单的重写规则,我基本上想说以下内容
如果请求的 URI 是 text/index.html (或 test/)并且 GeoIP 组织等于“我的 GeoIP 值”,则服务器 test/index2.html
我尝试了一些指令,但没有一个能像我预期的那样发挥作用。
我目前的设置是
map $geoip_org $redirectMe {
default 0;
'My GeoIP Org Value' 1;
}
server{
....
location /test {
try_files $uri index.html;
expires -1;
if ( $redirectMe ) {
rewrite ^/test/index.html$ /test/test2.html break;
}
}
....
}
我发现,无论我的 IP 组织如何,它要么不重定向任何内容,要么一直重定向,就好像它缓存了重定向,我以为 expires -1 会解决它。
我还注意到,无论请求是否被重定向,我都会收到 HTTP 304。
有人能指点一下吗?我以为这很简单。我也尝试过不使用地图,而是将比较放在位置内,但这行不通,使用服务器外的地图可以让我以后更轻松地更改逻辑。
更新 答案是它确实在工作,只是当我运行服务 nginx reload 时缓存没有刷新。
解决方案是使用 service nginx force-reload(或者重启,虽然这有点过头了),它会起作用
答案1
答案是它确实在工作,只是当我运行服务 nginx reload 时缓存没有刷新。
解决方案是使用 service nginx force-reload(或者重启,虽然这有点过头了),这样就可以了