我尝试通过将请求重定向到同一文件夹中的特定php文件来保护特定文件夹中的所有文件(pdf文件和图像文件)。 php文件检查用户是否已登录,然后抛出404(未登录)或返回所请求的文件。
这是一个WordPress安装。当用户上传文件时,它将自动存储在文件夹中(在uploads文件夹内),该文件夹由特定帖子的ID命名。当用户选择' secure'我自动构建了另一个名为' secured'的特定文件夹中的文件夹。在此“安全”文件夹中,只有登录的用户才能访问这些文件。
我已经设法通过将规则放到根目录中的htaccess来解决这个问题。但我的目标是通过此安全文件夹中的htaccess重定向它。因此,我们的目标是在此文件夹中自动创建这个“安全”文件夹和相应的htaccess php文件。
我的主要问题是我必须放在.htaccess文件中的代码。
我google了很多 - 但仍然没有找到适合我的解决方案。任何帮助都将受到赞赏。
答案 0 :(得分:0)
未登录时的错误应为403"禁止"。这与404"未找到"。
有所不同让我们说这个脚本名为reader.php 你可以把它放在.htaccess
中RewriteEngine On
RewriteCond ${REQUEST_URI} !reader.php
RewriteRule ^ reader.php [L]
您可以添加条件,仅对现有文件执行此操作:
RewriteCond %{REQUEST_FILENAME} -f
放在重写线之前
reader.php可以做到
<?php
if( !login_check() ) {
header('HTTP/1.0 403 Forbidden');
exit();
}
else {
$file = $_SERVER['REQUEST_URI'];
$filelocal = ''; // translate $file to something in current dir
## give correct header for filetype
header('Content-Type: application/pdf');
readfile($filelocal);
}