【发布时间】:2017-06-28 18:56:35
【问题描述】:
我刚刚主持了我的第一个网站项目。
index.php 位于文档根目录。所有其他(从属).php 页面位于名为 /pages 的子文件夹中; HTML页面位于/include; javaScript/scripts 等中的页面。
我想禁止直接(网址)访问我网站的任何附属页面。
我应该在我的 .htaccess 文件中添加什么,以便只能通过 url 从 Internet 访问文档根目录中的 index.php 或 index.html,但 不能 访问任何其他 .php还是 .html 页面?
我所说的任何其他页面是指像www.mydomain.com/pages/somepage.php 这样的页面。
我可以在我的文档根页面中创建自己的.htaccess - 事实上,我已经出于其他目的这样做了,所以我可以通过添加到这个文件来强制执行上述操作。
【问题讨论】:
-
@CBroe 来自 Apache:拒绝指令 - 控制哪些主机被拒绝访问服务器。我不想拒绝从特定主机访问我的网站。我想通过网络链接控制在我的文档根目录下的文件夹结构中哪些页面可以直接访问,而哪个页面不能。
-
抱歉,在您对 Starkeen 的回答发表评论之前,您想要的内容有点不清楚。是的,如果您希望人们必须首先访问您的索引页面,然后才能访问其他页面,那么您必须通过 cookie 或会话来实现。
-
不可能有一个,因为HTTP是stateless protocol。
-
HTTPS 只是基于 TLS 的 HTTP,这并没有改变它的无状态特性。 // 您可以通过 cookie 使用 .htaccess/mod_rewrite 来 add 状态(RewriteCond 可以检查客户端发送的 cookie,RewriteRule 可以设置 cookie) - 但这可能是有点复杂;通过会话在 PHP 中实现它更容易。