仅允许从特定引用者访问页面

问题描述 投票:0回答:2

包括尝试的解决方案、为什么它们不起作用以及预期的结果。

你好。我想在我的网站上创建某个页面,例如。仅当您从网站上的特定页面单击指向 site.com/content/B.php 的链接(例如)时,才可访问 site.com/content/B.html。 site.com/A.html

到目前为止,我尝试做的是将这段代码放入 site.com/content 内的 .htaccess 文件中:

    RewriteCond %{HTTP_REFERER} !^http://www.site.com/A.html$
    RewriteRule B.php - [F,NC]

仅当您尝试使用其他站点的链接打开 site.com/content/B.php 或仅在浏览器的地址栏中输入 site.com/content/B.php 时,才会返回 403 错误,但从 site.com/A.html 打开它时也会返回 403 错误。

我预计如果从不同位置打开它会返回 403 错误,如果从 A.html 打开它会显示 B.php

我希望您能关注,我非常感谢您的建议。 预先感谢您。

regex apache .htaccess mod-rewrite referrer
2个回答
0
投票

你可以尝试一下这个规则吗:

RewriteCond %{HTTP_REFERER} !^http://(www\.)?site\.com/ [NC]
RewriteRule (^|/)B\.php(/|$) - [F,NC]

0
投票

我认为您可能正在讨论可以解决我遇到的类似问题的事情。 我希望我看到的目标网页可以从特定的源网页访问。 假设目的地是:site.com/development/projects/index.html,来源是 site.com/development/index.html。 我在 /development/projects/ 文件夹中创建了一个 .htaccess 文件,其内容如下,但它不起作用。 RRewriteCond %{HTTP_REFERER} !^http://www.)?site.com/development/index.html [NC] RewriteRule (^|/)B.php(/|$) - [F,NC] 我必须在这些索引文件的 html 中添加一些内容,还是我的服务器语法/代码错误? 非常感谢所有的帮助。 A.

© www.soinside.com 2019 - 2024. All rights reserved.