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

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

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

特点: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.permission denied没有权限;拒绝访问;权限被拒绝; ask for permission请求许可; with one's permission经某人允许 planning permissionn.<英>建筑许可; 今日热词 热门搜索 strip[str?p] n.(纸、布、食物等的)条,带;狭长区域;商业街;队服;脱衣舞;连环画;v.脱衣服;除去,剥去;拆卸;剥夺; north[nθhttps://dict.ruihongw.com/permission
2.authority在16世纪之前,英语中通常拼写为 -c-,但这个字母被放弃并受到法语的影响,改为 -th-,可能是受 authentic 的影响。 从公元1300年起,它在“法律效力”的一般意义上被证明,也指“有权威的学说”(与理性或经验相对),还指“其声明被认为是正确的作者”。从中古英语开始,它还意味着“来自声誉良好的力量; 说服人们的https://www.yswxk.com/en-detail/873e9c0b50183b613336eea1020f4369
3.探索“Lock”一词的多重含义:从基本定义到技术应用与文化表现翻译隐喻意义 (Metaphorical Meaning) 有趣的是,"lock"在某些语境下也可以作为隐喻使用。比如说,当某人说“我锁住了我的情感”,这意味着他们不愿意表露自己的感情或脆弱的一面。这个用法让“lock”不仅仅局限于物理意义上的锁,eis2019.com,。 在文化中的表现 (Cultural Representation) https://www.163.com/dy/article/JJQ7O3JH0512BOIV.html
4.您没有权限下载文章:浅析《第二十二条军规》中的人物及其象征意义文档简介:浅析《第二十二条军规》中的人物及其象征意义_英语论文 A Brief Analysis of Typical Characters And Their Symbolic Meanings in Catch-22 摘要 《第二十二条军规》是美国作家约瑟夫·海勒一生当中最重要的作品,主要讲述了二战期间空军上尉约瑟连设法逃避参战的故事。该小说被认为是https://www.wylws.com/app/down.php?open=2&id=11723&uhash=ed1323fe5c3a02d657a06212
5.小学篇)2013年第03期:基于意义协商的小学英语课文呈现环节教师【摘要】意义协商有助于解决交际过程中的理解障碍。在英语课堂教学中采用意义协商手段,可以让学生获得更多的可理解性语言输入。本文结合教学实例,从意义协商的角度分析教师在课文呈现环节的话语,提出了在小学英语课文呈现环节应用意义协商的策略。 【关键词】意义协商,课文呈现,话语分析 https://yun.zjer.cn/space/index.php?r=space/person/blog/view&sid=15681&id=39220656
6.权限的翻译是:权限中文翻译英文意思,翻译英语权限 选择语言:从中文简体中文翻译英语日语韩语俄语德语法语阿拉伯文西班牙语葡萄牙语意大利语荷兰语瑞典语希腊语捷克语丹麦语匈牙利语希伯来语波斯语挪威语乌尔都语罗马尼亚语土耳其语波兰语到中文简体中文翻译英语日语韩语俄语德语法语阿拉伯文西班牙语葡萄牙语意大利语荷兰语瑞典语希腊语捷克语丹麦语匈牙利语希伯来语波斯语挪威http://eyu.zaixian-fanyi.com/fan_yi_3763142
7.2022软件测试面试题大全(整理版)1000+面试题附答案详解,最全面进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全,其中概括的知识点有:软件测试基础,MySQL,liunx,接口测试,APP测试,性能测试,selenium,Python,lordrunner,计算机网络,组成原理,数据结构与算法,逻辑题,人力资源等共有1000+道面试题。 https://maimai.cn/article/detail?fid=1700715497&efid=tA7eC1eCPIrzCZI7LISXLQ
8.>第2章Solaris运行时问题Nautilus ACL 掩码与组权限不同步 (6464485) “权限”选项卡中的组权限应与“访问”选项卡中的掩码权限相同,但在某些情况下两者会不同步。 解决方法:单击“关闭”按钮,然后单击“重新装入”。重新查看文件属性。此时组权限和掩码权限就重新同步了。权限设置为上一步中掩码更改后的内容。 https://docs.oracle.com/cd/E19253-01/819-7842/6n9ort64h/index.html
9.小学英语说课小学英语说课 一、说课的意义 说课:就是授课教师在独立备课的基础上,向同行系统地介绍自己的教学设想及理论依据,而后听者评议、交流切磋的一种教研形式。说课,对于了解、研究和评价一节课,对于专题研究某一教学内容,对于培养和提高教师的教学水平具有重要的意义。良好的说课能把理论与实践有机地结合起来,它集备中说https://www.wuhaneduyun.cn/index.php?r=space/person/blog/view&sid=F259F9A5021C7692E04010AC73D40970&id=1616157072
10.实习带队教师工作总结(20篇)(一)没有充分发挥好班干部的作用和权限。由于学生比较多,安全尤为重要,所以没有过多的给班干授权和放权,导致班里同学未能在管理方面得到更好的锻炼。 (二)没有提前建立严格细致的管理规定,参加此次实习的学生较多,由于没有提前建立严格的考勤制度,很多活动都不能按照规定时间照常进行,导致时间未能充分利用。 https://www.jy135.com/shixizongjie/1224946.html
11.培训工作总结(精选20篇)学校对暑期教师培训工作十分重视,为了很好的贯彻教育局教师暑期培训会议精神,确定了暑期培训领导机构:校长丁联伟任组长;主抓教学的副校长任培训办公室主任,为了培训工作有序、高效开展,我们还专门制定了语文、数学、英语、综合四个培训方面的负责人。 二、认真制定培训计划,确保计划的可行性 https://www.unjs.com/gongzuozongjie/5919671.html
12.温县智慧教育云平台2.学会使用词典获取多义词在特定上下文中的意义 文化知识 了解亚历山大?格雷厄姆?贝尔(ALEXANDER Graham Bell)获得成功的途径 Section A 1 (1a-2d) 一、教学目标: 1.掌握以下单词:textbook, conversation, aloud, pronunciation, sentence, patient. https://www.wxeduyun.cn/index.php?r=space/person/blog/view&sid=561ebac570bc48f9b257562b1d45ae3f&id=3144
13.深入探讨Oracle数据库角色:定义类型与权限管理技巧在Oracle数据库中,角色是一种数据库对象,用于管理用户权限和访问控制。角色可以被视为一组权限的集合,这些权限可以被授予给用户或其他角色。这种设计使得数据库管理员能够更方便地管理权限,而不需要为每个用户单独指定权限。本文将探讨Oracle角色的定义、类型、管理和使用。 http://dgyfjm.com/guanwang/3572.shtml
14.Java常用英语汇总Java常用英语汇总 1, 这是技术是什么? --java是什么?一门编程语言. 2, 这个技术有什么用? --java有什么用? 能够编写程序,最后形成软件.软件能卖钱.钱能给我们和家人带来一个幸福的人生. 3, 这个技术什么时候用? 4, 这个技术怎么用? *** javaSE javaEE(web开发,android开发) javaME Javahttps://www.jianshu.com/p/a731f868fe59
15.学校网站设计策划书(精选6篇)拥有方便、实用的内容管理系统(CMS) 功能包括:资讯管理、资讯发布、资讯审核、资讯分类、资讯字段自定义等,让网站能够更容易地管理和维护。资讯权限与用户组权限相结合,站长可以将资讯的发布、管理、审核等权限设置于不同的用户组,让指定的用户组拥 有资讯管理功能。 方便的上传机制 支持带预览图的多附件批量上传功能https://www.ruiwen.com/wangzhancehuashu/5313618.html
16.国家取消职称英语考试在2016年3月中央出台的《关于深化人才发展体制机制改革的意见》中明确规定,为突出用人主体在职称评审中的主导作用,合理界定和下放职称评审权限,推动高校、科研院所和国有企业自主评审公平;对职称外语和计算机应用能力考试不作统一要求。 下面为大家带来国家取消职称英语考试,快来看看吧。 https://www.yjbys.com/shebao/zhengce/509435.html
17.外语楼权限功能说明:收集您使用外语楼App时的设备信息、设备型号、唯一设备标识符、操作系统、电信运营商软硬件信息。 权限功能说明:浏览器类型 使用场景与目的:为您提供信息展示的最优方案 3.2.2信息交流功能。 权限功能说明:设备信息、浏览器类型、日志信息。 http://www.vocab666.com/
18.MySQL学习笔记字蘭对于权限: all privileges 除grant外的所有权限 (privileges 可以尝试省略) select 仅查权限 select,insert 查和插入权限 usage 无访问权限 alter 使用alter table alter routine 使用alter procedure和drop procedure create 使用create table create routine 使用create procedure create temporary tables 使用createhttps://blog.byteorchid.cn/archives/sqlxue-xi-bi-ji