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

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

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

特点: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.MySQL:用户未授权访问数据问题在MySQL中,如果用户尝试访问他/她没有权限的数据,会出现一系列错误。 Access Denied:这是最常见的错误信息,表示你试图访问的资源被拒绝。 GRANT Statement Error:如果你试图通过GRANT语句来授权,可能会遇到语法错误。 Table or View Not Found:这可能意味着用户对试图访问的表或视图没有足够的权限。 https://m.dandelioncloud.cn/article/details/1868948750135853058
2.accessible(adj.可访问的):通常指的是某个对象资源或功能在逻辑在软件开发中,“accessible”通常指的是某个对象、资源或功能在逻辑上或物理上对用户或程序是可达的,即用户或程序能够方便地获取和使用这些对象、资源或功能。这种可访问性可能受到多种因素的影响,包括系统的架构设计、用户界面设计、数据访问权限、网络连接状态等。 https://www.55kaifa.com/ruanjiankaifacihuishuyu/2827.html
3.车上notprovided什么意思车上显示 notprovided 一般指在车载端无法控制音乐播放、歌曲切换或者快进、快退等操作。 出现这种情况可能有以下原因及相应的解决办法 部分车载长期未更新车机系统导致无法适配手机。这时候建议您去 4S 店将车机系统升级到最新版本。 还有可能是车内的播放器不支持无损音质的音乐格式只能读取 mp3 格式的音乐文件。您可https://m.pcauto.com.cn/baike/862577/1691128/
4.Anylisten出现报错,该如何解决?合理使用资源:在使用 AnyListen 时,请确保你的设备有足够的网络带宽和内存资源,以保证软件的正常运行。 四、FAQs Q1: AnyListen 无法连接到服务器,但我的网络连接是正常的,这是怎么回事? A1: 这种情况可能是由于防火墙或杀毒软件阻止了 AnyListen 的访问,请尝试暂时关闭防火墙或杀毒软件,看看是否是它们阻止了 AnyListehttps://blog.huochengrm.cn/gz/15748.html
5.GetmailboxRestoreArtifactsBulkAdditionRequestGet a mailboxRestoreArtifactsBulkAdditionRequest object by its id, associated with an exchangeRestoreSession.PermissionsChoose the permission or permissions marked as least privileged for this API. Use a higher privileged permission or permissions only if your app requires it. For details about https://learn.microsoft.com/zh-cn/graph/api/mailboxrestoreartifactsbulkadditionrequest-get
6.sqlserver指定的架构不存在没有使用权限确保用实际的表名替换your_table_name,执行此查询以验证是否能够成功访问。 权限分布图 为了更好地理解用户的权限分布,我们可以使用饼状图来展示不同权限的占比。 30%20%20%30%用户权限分布读取权限写入权限执行权限无权限 结尾 通过以上步骤,我们可以有效地解决“指定的架构不存在或没有使用权限”的问题。首先确认https://blog.51cto.com/u_16213427/12874551
7.你没有访问权限的翻译是:Youdonothaveaccessto中文翻译a我去年毕业 My graduated last year[translate] aSala exposicao de lentes 透镜的室博览会[translate] a分销网络客户 Retailing network customer[translate] a你没有访问权限 You have not visited the jurisdiction[translate]http://eyu.zaixian-fanyi.com/fan_yi_10244746
8.计算机没有u盘权限,U盘复制文件时提示没有访问权限的解决方法U盘,全称USB闪存盘,英文名“USB flash disk”。它是一种使用USB接口的无需物理驱动器的微型高容量移动存储产品。而有用户在利用u盘从计算机中复制文件的时候却弹出提示“需要管理员权限”,这是怎么回事呢?究竟该如何解决?下面韩博士小编就为大家带来U盘复制文件时提示没有访问权限的解决方法,一起来看看吧! https://blog.csdn.net/weixin_39560657/article/details/119200815
9.Deskreen说明截图为英文. MacOS 上的屏幕录制权限位于系统 偏好设置 -> 安全与隐私 -> 隐私 -> 屏幕录制 Windows 允许 Deskreen 访问本地和公共网络的权限 Windows 用户需要在第一次启动时或在防火墙设置中为 Deskreen 添加 “专用网络访问” 防火墙、防病毒等。 Deskreen 还没有代码签名。这意味着当你第一次运行杀毒软件https://deskreen.com/
10.git提示permissiondenied问题的解决方法有什么?? 在使用github进行项目克隆的时候,有些时候会出现“git@github.com: Permission denied (publickey)https://www.zhihu.com/question/483980934/answer/54634893047
11.>第2章Solaris运行时问题解决方法:安装了非全局区域后,添加对 ZFS 文件系统的访问权限。 ZFS 和 UNIX/POSIX 的兼容问题 ZFS 旨在成为与 POSIX 兼容的文件系统,并且在大多数情况下,ZFS 与 POSIX 兼容。但是,存在两种 ZFS 不能达到 POSIX 兼容测试标准的边界情况: 更新ZFS 文件系统容量统计信息。 https://docs.oracle.com/cd/E19253-01/820-1877/6ndh3vjte/index.html
12.命令时遇到错误消息:“访问被拒绝,因为您没有足够的权限,或者更正此问题和 CMD(命令提示符)中 chkdsk 执行要求的步骤。 说明 在磁盘部件管理中收缩卷时发生硬盘驱动器错误。然后,系统请求用户在 CMD(命令提示符)中执行chkdsk。 解决方法 此问题是由于尝试在没有管理员权限的情况下在命令提示符下运行chkdsk引起的。 https://www.intel.cn/content/www/cn/zh/support/articles/000058056/intel-nuc.html
13.OS+WindowsCE/XP/2003/2008/Vista/win7/win8出现“XXX无法访问”、“您可能没有权限使用网络资源”、“请与这台服务器的管理员联系以查明您是否有访问权限”、“找不到网络路径”等类似的提示, 此时请停用本地连接的防火墙屏蔽。当然也可以在防火墙里进行相关的共享设置。 四:为WinXP添加NetBEUI协议。 https://www.iteye.com/blog/lindows-470542
14.内蒙古大学图书馆你的借书证上有超期的书;或者你的超期书还了,但是超期的欠费没有交。 5. 所借书已经超期,超期费怎么计算? 本馆实行借阅(书刊)逾期罚款制度。外借图书超过借阅期,1—20天内每册图书每超一天需交滞纳金0.10元,20天以后每册图书每超一天需交滞纳金0.20元;阅览室短期外借图书逾期不还,每超半天需交滞纳金1.00元,http://dlib.imu.edu.cn/home/ServiceDetail/2343
15.访问权限认证,AccessRightsAuthentication英语短句,例句大全英文短句/例句 1.Unable to delete this view. You do not have access or access has been denied.不能删除该视图。您没有访问权限或访问被禁止。 2.Administrators have full access; other users have read and write access管理员有完全访问权限;其他用户有读写访问权限 http://xjishu.com/en/083/y466962.html
16.访问权限翻译成英文,上下文中的例子,发音,语法,定义“访问权限"的最常见翻译 : access, access authority, access permissions.上下文翻译 : 通过基于密码的访问权限保护文件和数据的安全。 ? Documents and data are protected by password-based access rights.http://zh.glosbe.com/zh/en/%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90
17.常见问题·国产操作系统麒麟操作系统——麒麟软件官方网站A:绑定激活权限过期之后,激活管理员无法再激活系统,若需激活系统,需联系对应提供系统的商务6) 系统激活过期对操作有什么影响吗? A: 对使用无影响。会有激活到期提示,不能再享受售后服务7) 服务序列号和验证码有什么用处? A:服务序列号用于验证是否为正式版本,验证码是激活系统使用的8) 激活页面没有二维码? https://www.kylinos.cn/support/problem.html
18.入门指南申请证书的最佳方式取决于您是否具备服务器的命令行访问权限(也称为 SSH 权限)。 如果您仅使用控制面板(例如 cPanel、Plesk 或WordPress)管理您的网站,您很有可能没有命令行访问权限。 您可以联系您的托管服务提供商确认。 拥有命令行访问权限 我们建议大多数具有命令行访问权限的人使用 Certbot ACME 客户端。 它可https://letsencrypt.org/zh-cn/getting-started/
19.个人数据安全范文12篇(全文)对个人数据文件或文件夹设置访问权限, 通过把访问权限设置最低, 从而防止针对个人数据共享的非授权访问, 有效降低个人数据信息的泄漏。 4 结语 网络信息技术是一把双刃剑, 一方面有利于个人数据信息的正常使用流通, 另一方面也给个人数据安全带来极大的威胁, 数据的泄露严重威胁着个人的工作及家庭生活。在个人数据泄密https://www.99xueshu.com/w/ikey9am685aa.html
20.如何修复Firefox已经在运行但没有响应错误?解决办法方法3:检查访问权限 如何修复Firefox已经在运行但没有响应?为了无缝运行,Mozilla Firefox 在 C 盘上 Program Files 目录中的 Firefox 文件夹中创建的配置文件文件夹中创建系统文件。有时由于系统文件错误或读/写错误,Firefox 无法创建任何文件,因为它失去了所需的权限。要检查权限状态,请执行以下步骤: https://www.lsbin.com/40594.html
21.常见问题若贵单位已购买了相应的文献库,但系统仍提示“您没有权限使用该数据库”,请联系本系统的“在线咨询”,或者发电子邮件到本系统 技术支持support@scholarmate.com。3. 检索时,为何系统提示“您所选数据库正在维护中”?当文献库正处维护中时,即出现以下提示信息,请稍候再试。https://www.scholarmate.com/resscmwebsns/html/search_faq.htm
22.怎么免费注册imyPassWindowsPasswordResetUltimate密码重置软件没有管理员访问权限并且希望创建新帐户的标准用户。 imyPass Windows密码重置的工作原理 在没有任何复杂的助手或设置的情况下,imyPass Windows密码重置为您提供了两种通过CD/DVD和USB闪存驱动器在Windows上重置密码的方法。支持配备BIOS或传统模式的Windows计算机。 https://www.jb51.net/softjc/923787.html