我是一家加拿大公司。我的主要网站包含所有产品,但随后使用此重定向,来自加拿大的任何流量都会重定向到我的另一个镜像网站,其中所有产品均以 CND$ 定价。
这是我在美国网站页面的头部使用Maxmind GeoIP Lite的脚本。它工作得很好。
<script language="JavaScript" src="http://j.maxmind.com/app/country.js" type="text/javascript"></script>
<script language="JavaScript" type="text/javascript">// <![CDATA[
if(geoip_country_code() == "CA"){
document.write("");
window.location = 'http://www.myCanadaianWebsite.com';
}
// ]]></script>
唯一的问题或烦人的事情是,由于我位于加拿大,因此我很难自己检查和测试美国网站。每次我想检查我的美国网站时,我都必须从我的美国网页中删除脚本。然后,当我看完之后,我将其重新粘贴回去。
有没有办法我可以在我的脚本中添加一个例外,该例外不会根据我的 IP 或位置重定向我?我已经用谷歌搜索过它,但没有遇到过这样的事情。很想找到解决这个问题的方法。谢谢。
您可以使用服务器端代码根据 IP 有选择地输出脚本,也可以使用像 Charles Proxy 这样的工具将您自己的脚本替换为包含硬编码"这是美国"数据的http://j.maxmind.com/app/country.js
。
在 php 中,您可以使用 $_SERVER['REMOTE_ADDR'] 来获取您的 IP。要在 javascript 中获取远程 IP,请参阅如何仅使用javascript获取客户端的IP地址?
我建议以下解决方案:安装允许您设置或取消设置 cookie 的脚本:请参阅此处以获取文档:http://www.markusnordhaus.de/2012/01/20/using-cookies-in-javascript-part-1/
我可能会将检查转移到服务器端,但失败了,给自己一个cookie(基于jQuery的示例)。
if(geoip_country_code() == "CA" && $.cookie('pretendimamerican') === null) {
//Redirect
}
然后给自己那个cookie,或者制作一个秘密URL来为你设置它。这样,无论您的IP如何,您都可以使用它,并轻松将其发送给同事。显然,您的实现不是安全性,而是价格演示,所以我不担心人们伪造它(因为这些人可以很容易地禁用您现在拥有的东西)。
与此相关的是,如果您的测试变得更高级,我创办了一家公司来帮助人们使用代理测试他们的GeoIP应用程序:https://wonderproxy.com/