是否可以将所有请求重定向到特定文件夹中的所有文件到同一文件夹

时间:2017-07-11 20:38:42

标签: php wordpress .htaccess redirect

我尝试通过将请求重定向到同一文件夹中的特定php文件来保护特定文件夹中的所有文件(pdf文件和图像文件)。 php文件检查用户是否已登录,然后抛出404(未登录)或返回所请求的文件。

这是一个WordPress安装。当用户上传文件时,它将自动存储在文件夹中(在uploads文件夹内),该文件夹由特定帖子的ID命名。当用户选择' secure'我自动构建了另一个名为' secured'的特定文件夹中的文件夹。在此“安全”文件夹中,只有登录的用户才能访问这些文件。

我已经设法通过将规则放到根目录中的htaccess来解决这个问题。但我的目标是通过此安全文件夹中的htaccess重定向它。因此,我们的目标是在此文件夹中自动创建这个“安全”文件夹和相应的htaccess php文件。

我的主要问题是我必须放在.htaccess文件中的代码。

我google了很多 - 但仍然没有找到适合我的解决方案。任何帮助都将受到赞赏。

1 个答案:

答案 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);
    }