没有 URL 重写的元刷新

Posted

技术标签:

【中文标题】没有 URL 重写的元刷新【英文标题】:Meta Refresh without URL Rewrite 【发布时间】:2017-07-06 10:39:13 【问题描述】:

我们正在推出一个仅限会员的 Wordpress 网站,该网站只能隐藏页面/帖子;但是,我们的部分内容是由不容易隐藏的 API 提供的。

到目前为止,我最好的解决方案是在我可以使用我们的会员插件限制的页面上嵌入一个 html 元重定向到适当的 URL。

<meta http-equiv="refresh" content="0; url=https://www.example.com/?taxonomy=inventory" />

对这种方法的唯一警告是 URL 会被公开,任何人都可以分发源代码。

有什么方法可以在不重写 URL 的情况下使用元重定向?我在 .htaccess 文件中尝试了一些东西,但都没有真正产生可行的解决方案。

【问题讨论】:

【参考方案1】:

而不是使用元刷新(可以很容易地被正确的浏览器插件阻止),您应该专注于添加一个页面和 post hook 来检查查看者是否具有适当的权限(登录、成员等)查看该页面并将它们在服务器端重定向回主页(或自定义错误页面)。

这可能不会阻止隐藏的页面链接被共享,但会阻止内容被阅读。

【讨论】:

我们使用的 Memberships 插件是双重目的,用于与此完全无关的事情,我们不准备放弃它......因此我不得不接受它。 URL 的分发是我们根本不允许的,所以不知何故......我必须在重定向期间屏蔽 URL。 您无法阻止最终用户共享 URL,除非您使用一次性 URL,而不会两次访问相同的内容。如果您需要屏蔽 URL,则创建一个由 wordpress 处理的缓冲区 URL,并在检查其成员身份后将它们发送到真实 URL。你必须在某个地方让步才能完成这项工作。 解释一下这个缓冲区 URL。我是这个概念的新手。 您可以使用插件来标记带有自定义信息的页面或将所有帖子/页面请求重定向到特定的 wordpress 文件。然后,您可以检查他们是否已登录并有权查看帖子/页面(如果需要)。如果除了主页之外的所有内容都应该是会员,您只需检查他们是否已登录并有权访问 post.php 和 page.php 文件,瞧。

以上是关于没有 URL 重写的元刷新的主要内容,如果未能解决你的问题,请参考以下文章

前后端分离代码,前端刷新404,调整nginx.conf实现URL重写

lighttpd URL重写

使用反向代理的 IIS URL 重写规则 - HTTP 错误 500.52

url在tomcat 8服务器上重写Angular 4

thinkphp5 部署到iis服务器url重写

Magento - URL 重写或重定向问题