假设index.php
我的公共目录中有一个文件。
使用DirectoryIndex index.php
,我可以将该文件设置为我的网站中的默认索引。
但如果我不想让用户www.example.com/index.php
通过只有通过 www.example.com
, 我怎样才能做到这一点?
编辑
我添加了以下代码:
if (strpos($_SERVER['REQUEST_URI'], 'index.php')) {
readfile('404.html');
exit;
}
在 的开头index.php
,这样输入 bywww.example.com/index.php
会导致 404 错误,而输入 by 则www.example.com
不会(因此,不会向潜在攻击者透露我是否使用 PHP 的信息)。这不是世界上最好的解决方案,但确实有效。
答案1
答案2
您无法真正“隐藏”该页面。您可以使用 htaccess 拒绝访问(导致 403 错误)。您还可以使用 mod_rewrite 重定向,从 /index.php(如建议)重定向到 / 或从 /index.php 重定向到您的 404 文件(如您现在所做的)。最接近隐藏页面的方法是使用 mod_rewrite 从 index.php 转到 /,因此当用户输入 www.example.com 或 www.example.com/index.php 时,它会显示为 www.example.com
答案3
你可以使用类似以下方式“禁止”/index.php
<Location /index.php>
Order deny,allow
Deny from all
</Location>
或者使用 mod_rewrite (更加用户友好) 从 /index.php 重定向到 /。
答案4
我看到你对 Koos 的评论说你想隐藏 index.php,但实际上你做不到。最好的做法是将要隐藏的部分放在另一个文件中,然后将该文件包含在 index.php 中。如果操作正确,用户将看不到 include 语句和包含的文件,只能看到结果输出。