我正在尝试制作我的网站,以便您必须登录才能查看某些文件。我使用 mySQL 数据库启动并运行登录,一切正常,除了我不想手动编辑所有 1000 多个 html 文件以检查用户是否已登录。我尝试使用 htaccess,但是弹出窗口太丑了,我受不了。
现在,问题是,我是否可以在不手动修改所有文件的情况下对我网站上的一堆文件进行密码保护,或者我可以让“htaccess 登录表单”看起来不错。谢谢。
您可以将所有 HTML 文件放在 webroot 之外的目录中,然后通过 URL 重写或传递给单个 PHP 脚本的基本查询字符串变量来引用它们。
例如:
<?php
// Get the file from ?whichfile=(...)
$whichfile = $_GET['whichfile'];
// Put your logic here to verify that the user is logged in / has a valid session ID, etc.
// You should also put some checks on the value that is passed through "whichfile"
// to prevent users from accessing things they shouldn't.
// Edit: example to prevent this:
// $whichfile = "../../../../etc/passwd";
$fname = pathinfo($whichfile, PATHINFO_FILENAME);
$ext = pathinfo($whichfile, PATHINFO_EXTENSION);
$fname .= ($ext ? ".".$ext : "");
if (file_exists("/var/www/folder/out/of/webroot/".$fname)) {
$blob = file_get_contents("/var/www/folder/out/of/webroot/".$fname);
header("Content-Type: text/html; charset=utf-8");
print $blob;
}