由于涉及到多重缓存,所以技术性偏强,没有一定技术基础的外贸人就不要过多研究了。

关于缓存,本文已经尽量详细解释了,如果不成功,我也不想过多去解答。

实际上,为了实现这个功能,给自己访问网站也会带来一些不便。所以再次提醒一下,如果不是有着强烈的需求,建议别折腾。

特点:IP屏蔽+浏览器语言识别+Cookie访问权限

你会选择禁止他们访问吗?这是一个让人心烦的问题。

实际上,除了这些考虑因素之外,还有竞争性方面的考虑。

我的外贸课程有一定比例的学员是外贸SOHO和外贸刚起步的startup公司,刚刚开始学习并尝试自建站,总是会时不时问到:如何能屏蔽国内同行对其网站的访问?屏蔽国内同行,目的很简单,只是为了信息保护,防止同行的跟风copy。

Brian也曾担心过是否会有同行有意或者无意中看到他们的英文网站,所以一度想过,是否要做一些访客流量的限制。但是由于他对网站技术一窍不通,缺乏必要的基础,最后也不知道如何去弄,最终也忽视了,没有做任何的防范措施。

谁知道,才过了一个多月后,有其他同行模仿做了类似的款式,并且放到阿里巴巴上橱窗产品里去了!

这位Brian学员非常怀疑是该同行访问了他们的英文网站,抄袭了他们的设计和功能。而他还没来得及去申请专利,所以觉得特别头疼和心塞!!

最后,他来问我,是否有办法能屏蔽国内同行访问?

关于自己设计和研发的新款,被同行copy的这件事,真正的原因是否真的如他所说,因为被同行看了网站而导致的,还是另有其它什么原因,我不得而知。毕竟商场如战场,什么事都可能发生。

但也只是说说思路,并没有去尝试如何实现。而这位学员的事情发生后,我花了几个小时写代码和测试,最终发现可以实现!

通常屏蔽特定国家流量访问,我们常见的一些WP插件工具,方法主要是第一种:根据IP地址地理位置IP(GEOIP)进行国家地区地判断,进行对应地屏蔽。显然,这种方式效果不太好。而另一种方式,识别判断访问者的浏览器内置的语言编码,或者操作系统的语言,就可以差不多解决套个代理换个国外IP就可以访问的问题了。

这两种屏蔽访问的方式,即使是第一种方式(GEOIP),WordPress插件里也很多都是付费版插件里才提供这个功能。而第二种按浏览器语言或操作系统语言的方式,WordPress还没有任何相应的插件。

当然,像我这种有一定基础的业余Coder来说,不那么喜欢用插件,还是喜欢直接上代码。无论哪一种方式,要用代码实现,都不是太难。但对外贸人来说,要实现还是需要一点点基础和大胆尝试的,起码你得装个文(代)本(码)编辑器吧?记事本之类的还是算了!(常见的文本编辑器,还是推荐notepad++或sublimetext3)

废话不多说,在你的网站当前所用主题的文件夹下,找到header.php,使用文本编辑器打开。在之前加上下面的代码,保存,上传覆盖原header.php文件。

假设你要屏蔽国内同行的IP访问(同样地,你自己也只能代理方式访问了)。首先你必须有个判断GEOIP的模块。在VPS上你可以在nginx上安装geoip模块,但是安装和使用上还是麻烦了点。并且,如果你用的是虚拟主机,那就无法自己随心所欲安装扩展模块了。

所以,我们可以借用第三方IP库的API接口。比如淘宝的IP库,IP138的IP库等等,判断都非常准确。具体代码:

另外,为了防止国外调用ip.taobao.com的判断国家地区的getIpInfo.php文件速度慢,最好在上面代码下面再加一行dns预解析代码,加快载入文件。

如果你是SiteGround虚拟主机的用户,你需要在WP后台点击一下顶部的PurgeSGCache按钮来清理缓存。前提是,你之前在Cpanel里WordPressTools下–SuperCacher里面,开启了LEVEL1,LEVEL2和LEVEL3的缓存功能(开启之后,控制是用SGOptimizer控制)。

如果你安装过任何缓存类的插件,也注意清理一下缓存。因为你的首页会被你的主机缓存,甚至有些缓存插件会利用浏览器缓存。

关于方式二,我认为根据浏览者的浏览器语言编码来判断已经足够,所以这里不必再去研究判断访客的操作系统语言的方法了。

每个浏览器都会有个语言编码,如中文最常见的是zh或zh-CN。

利用访问者的浏览器语言类型进行判断并屏蔽:

所以如果你要排除这些情况,可以再做一个if判断。稍作修改:

注意:如果你使用Avada,Betheme等主题,请放到的上面。

以上两种方式在chrome,firefox以及sougou浏览器测试下,一切正常。

1)可不可以两种方式结合起来?ofcourse,whynot!代码都扔到之前即可,不过这样的话你可能用了代理也访问不了自己的网站了,呵呵。那怎么办呢?下文会介绍方法。

2)上面的两种方式,把屏蔽的访问转向百度了,这多少有点刻意跳转的意思,容易引人怀疑。

3)这种分流方式也可以用在marketing上,把不同地区流量的潜在客户,导到不同的landingpage上。或者你玩多站点,你也可以设置导流。

站长在访问网站前,先访问一个任何人都不知道的页面,获取浏览器特定的cookie,相当于获取通行证。

4.1)在网站根目录下(如果是虚拟主机,则网站根目录大多是在public_html目录下;如果是VPS则大多是在/home/wwwroot/www.abc.com/下),放一个php文件。

取名getcookie.php,或letmein.php,或任何你觉得好记的名字。为了安全起见,你最好自己取个名字,不要用我示范的文件名。

代码如下:(请自行修改网站网址,把域名换成你的)

下载完js.cookie.js文件,上传到你的网站根目录下。跟getcookie.php一个目录下。

当然你还可以再检查一下:F12调出审查元素工具窗口,点击最上面一行里的Application。然后点击下方左侧的Cookie,如果看到有一行名为WebsiteOwner的Cookie记录,则说明赋予Cookie成功。

此时再访问自己的网站,即可正常访问。

2)在主题文件夹下,header.php文件的前放下面的代码

(注意:如果你使用Avada,Betheme等主题,如果放上面不行,放到上面即可)

一般同行来访问,没有正确的cookie值,是进不去的。而你要进去,先访问你网站根目录下的getcookie.php或letmein.php文件即可。

这就解决了方式二的浏览器语言编码通杀的问题。

思维导图来小结吧:

有人会说了,怎么结合起来用呢?

先从②和③开始检查:

1)你WP后台有没有安装任何缓存类的插件?有:清理缓存(flushcache/purgecache)。没有:无需任何操作。建议清理完缓存后,先停用缓存插件。因为你要反复调试屏蔽代码。等确定添加的功能代码运行正常后,再重新启用缓存插件。

2)你没有清理本地电脑上浏览器的缓存?为了提高网页访问速度,有些缓存插件会使用浏览器缓存。原理是:第一次访问网页时就在本地浏览器缓存中生成该网站的页面,让你从第二次访问开始,之后的每次访问直接从你浏览器缓存里获取,而不是去网站获取最新的页面。所以你需要把你Chrome浏览器的缓存也手动清理一下,Chrome浏览器右上角菜单按钮-更多工具-清理浏览数据,选择“缓存的图片和文件”。如果你想清除cookie,也一并勾上,点击清除数据按钮。

上面这两类缓存都容易清理。第一类虚拟主机自带的缓存,要稍微复杂一点点。

3)你的虚拟主机是否自动开启了自带的缓存?常见的外贸人用的虚拟主机是SiteGround或Bluehost。前者有个SuperCacher缓存系统,后者有个EnduranceCache系统。

***如果用的是SiteGround虚拟主机,SiteGround应该在网站后台自带安装了管理SuperCacher的WordPress插件:SGOptimizer。点击进去,出现配置界面。在SuperCacherSettings下,DynamicCaching下面有个ManualCachePurge(手动清理缓存),点击清理一下。

然后第二项:EnvironmentOptimization之下,先不要开启BrowserCaching,GZIPCompression可以开启。其他的不用管。第三个选项卡下,注意其它都可以勾选,MinifyJavaScriptFiles这一项不要勾选,JS文件代码的压缩,容易出问题。

然后点击顶部的PurgeSGCache。这样即可清理掉所有SiteGround生成的缓存。

***如果你用的是Bluehost虚拟主机,先在WP后台EndurancePageCache这里,清理一下PageCache。点击PurgeCache清理缓存的按钮

清理完了PageCache,你再看上面那里BrowserCache那里,它没有任何清理按钮,是因为这种缓存插件让你的浏览器第一次访问的时候也在浏览器里生成了缓存。所以你需要清理浏览器中的缓存。

然后,在WP后台,Setting里面,会有个EnduranceCache-CacheLevel的选项,选择Off。

然后在Bluehost后台,Performace这里,勾选CachingOff,这样就顺利关闭了Bluehost自带的缓存。

打开Chrome浏览器的设置,点击菜单–设置(Settings)–高级–语言,然后把英语移到顶部。

通过这种办法,可以修改浏览器语言,进而影响HTTP_ACCEPT_LANGUAGE的判断。

THE END
1.android请求多项权限的简明范例代码在Android 开发中,权限管理是一个非常重要的环节。随着 Android 版本的不断更新,Google 对于应用权限的管理也越来越严格。特别是当涉及到用户的隐私权限时,开发者必须在运行时请求这些权限,而不是在安装时声明它们。本篇文章将详细介绍如何在 Android 应用中请求多项权限,并提供一段简明的代码示例。 https://blog.51cto.com/u_16175446/12863555
2.线程平台推出“隐藏词”功能综合华盛顿:线程平台宣布,它打算推出一项新功能,让用户从他们的订阅和提及中过滤出单词和短语。 “隐藏单词”功能会自动将可能冒犯用户的常见单词、短语和表情符号静音。除了这些预设的过滤器,用户还可以在设置中添加自己的自定义单词和短语。根据平台的要求,用户可以在任何时候关闭这些设置。 http://www.logserver.cn/news/show/155233/
3.模式下进行管理员权限提升的提示动作的英文翻译英语怎么说海词词典,最权威的学习词典,专业出版模式下进行管理员权限提升的提示动作的英文,模式下进行管理员权限提升的提示动作翻译,模式下进行管理员权限提升的提示动作英语怎么说等详细讲解。海词词典:学习变容易,记忆很深刻。http://dict.cn/%E6%A8%A1%E5%BC%8F%E4%B8%8B%E8%BF%9B%E8%A1%8C%E7%AE%A1%E7%90%86%E5%91%98%E6%9D%83%E9%99%90%E6%8F%90%E5%8D%87%E7%9A%84%E6%8F%90%E7%A4%BA%E5%8A%A8%E4%BD%9C
4.提示是无权限的翻译是:Tipsarenopermissions中文翻译英文a成为女检察官 正在翻译,请等待[translate] a爵士摇滚乐 Knight rock and roll[translate] aa well-cooked dinner 一顿很好煮熟的晚餐[translate] aPlaza`s foot 广场`s脚[translate] a提示是无权限 The prompt is does not have the jurisdiction[translate]http://eyu.zaixian-fanyi.com/fan_yi_7069471
5.Linux基本教程chmod 777 -R tomcat 把tomcat文件夹以及子目录所有的权限打开 命令提示(一般是英文) man 加上命令 或者 命令--help man ls man cd …… 改所有的配置文件之前建议copy一份(备份) Linux常见网络操作 主机名配置 hostname 查看主机名 hostname kang 修改主机名为kang (临时性修改 重启后无效) https://developer.aliyun.com/article/814236
6.网页在线打包app工具,H5封装成app,封装打包APP22.英文支持 勾选后,界面提示信息会使用英文(包括退出提示,输入密码界面,联网错误页面) 23.允许混淆 勾选后,打包生成的APK可以被 安卓APK资源混淆加密重签名工具 加固处理,如果不勾选则不可以处理 常见问题 1.打包出现“java Error opening registry key 'Software\JavaSoft\Java Runtime Environment'”错误 https://cloud.tencent.com/developer/news/983885
7.微信告知提示显示英文微信告知提示显示英文怎么修改成简体中文1、微信通知提示显示英文是因为设置了英文通知。可以通过以下步骤改回简体中文。2、手机打开微信app,然后https://ask.zol.com.cn/x/15994009.html
8.电脑高手必备Windows系统25招实用技巧17、如何解决WindowsXP关机出现英文提示 现象:我的WindowsXP关机时会出现一个进度条,并提示“Toreturn towindowsandcheckthestatusoftheprogramclickcancelifyou choosetoendtheprogramimmediatelyyouwillloseanyunsaved data.Toendtheprogramnowclickend.”然后就正常关机,但有时却不出现,我想会不会与我的东方影都3的记忆播https://supplier.alibaba.com/article/CTG3ZAMZTUL.htm
9.第2章运行时问题(SunManagementCenter4.0发行说明)如果对某个语言环境值不太确定,请选择 C 使用英文语言环境。 显示工具提示而不显示报警标记 (6219617) 发生报警情况时,可能会显示报警标记的工具提示而不是报警标记本身。 如果您导航至另外的窗格,然后再返回到报警对象的图标,图标上的标记便会正确显示。 解决方法:无。 单击浏览器的后退按钮时可能发生异常 (https://docs.oracle.com/cd/E19957-01/820-3709/6nf7n3qbc/index.html
10.重要提醒!埃及海关启用货物预报系统,无ACID号码将无法清关埃及外商提示:中国出口商的每个单证上都要加上ACID number,尤其是提单。 重要提醒:一旦ACID申报完成之后,发运人和收货人信息不能再更改,所以申报前必须仔细确认发运人和收货人信息。ACID每个发运批次都需要申请,ACID号目前有效期三个月。 埃及ACI货物预登记系统使用说明文档 http://mp.cnfol.com/29494/article/1632708132-140066126.html
11.安装系统常见问题2345dn在联网界面,按下Shift+F10(部分笔记本是Fn+Shift+F10)快捷键调出命令提示符窗口 输入:oobe\BypassNRO.cmd回车即可。 Win7/Win10/Win11纯净版与装机版区别 参考效果图,装机版比纯净版多了office与QQ,其它无任何区别。 2023年9月之前系统参考效果图,装机版比纯净版多了office与迅雷,其它无任何区别。 https://2345dn.com/fqa1.html/comment-page-2
12.FAQa.使用小米双模模组,或者小米蓝牙模组 b.设备后台打开靠近配网功能(需产品验收通过后,由小米验收组开通) c.未上线产品,测试账号需要添加企业白名单权限 d.登录MIUI的账号和登录米家app的账号需保持一致 注意:同一设备5min内不重复展示靠近配网弹窗Q:米家app语言切换成英文,消息推送还是推的中文https://iot.mi.com/new/doc/accesses/app-development/native-app/android/FAQ