我的问题是NginX anf if(我知道如果是邪恶的,但我需要使用它)。 我想在两个条件下重定向访问我网站的用户。如果他们的IP匹配且URL正好是www.domain.com
Base我有一个包含2个IP和2个域的网络服务器。一个用于英语,一个用于本地语言。我想将使用本地IP的每个人重定向到本地域。 (从domain.com到domain.hu)
到目前为止我做了什么:我已经使用IP2Location安装了NginX,它就像一个魅力。这是我在nginx.conf中的“if”部分
if ($ip2location_country_short ~ ^HU$)
{
set $my_var1 "${my_var1}B";
}
if ($request_uri ~ .*wonder*.*)
{
set $my_var1 "${my_var1}C";
}
if ($my_var1 = ABC)
{
#rewrite ^/(.*)$ http://www.domain.hu last;
}
我想要实现的是:使用名为$ my_var1的变量并使用它来决定是否需要重定向用户。我把它设置为第一名的“A”。 在第一个条件中:如果用户来自匈牙利,则使$ my_var1等于“AB”。接下来我想检查用户是否在浏览器中写了ENG或HU URL。如果他写了www.domain.com的确切网址,我想重定向用户。如果他这样做,那么我将$ my_var1设置为“ABC”。如果$ my_var1的值等于“ABC”,则在第3个if中,然后重新定向。
我的问题是:我不知道如何检查网址。我在编写一个PHP文件时发现了这个问题,以便在进入网站后向我显示$ my_var1的值,结果显示$ my_var1的值总是只有“AB”。我没有检查网址。你能给我一个如何检查URL包含文本/等于某事
的描述答案 0 :(得分:1)
完成!
set $my_var A;
if ($ip2location_country_short ~ ^HU$)
{
set $my_var "${my_var}B";
}
if ($http_host ~ .*domain.com.*)
{
set $my_var "${my_var}C";
}
if ($my_var = "ABC")
{
rewrite ^/(.*)$ http://domain.hu last;
}
没想到会这么容易.....