我有上传文件的文件夹,我需要其中的子目录作为受保护目录,并在每次调用其中一个文件时检查用户权限。 .htaccess会在upload_files目录中调用index.php文件,同时保持URL,以便index.php可以针对数据库检查文件,以查看登录用户是否具有该文件的访问权限,如果有, index.php将提供文件,用户不知道权限检查。
我实际上已经在我的开发服务器上使用上传文件目录中的.htaccess中的以下代码进行了这项工作,
RewriteEngine on
RewriteRule ^protected($|/) - [F]
ErrorDocument 404 /uploaded_files/index.php
ErrorDocument 403 /uploaded_files/index.php
ErrorDocument 405 /uploaded_files/index.php
但是在实时服务器上,有些东西导致theese php标头被忽略:
header('Content-Type: some/mime');
和/或
header('Content-Disposition: attachment; filename="somefile.txt"');
我认为它可能是RewriteRule的强制403,但我使用它以便URL不会改变而index.php可以获得$ _SERVER [&#39; REQUEST_URI&#39;] < / p>
我还通过index.php
归档404答案 0 :(得分:0)
这似乎有效。重定向到RewriteRule上的/uploaded_files.index.php和L [Last]标志而不是F [403]标志
重写发动机
RewriteRule ^ protected($ | /) - [F]
RewriteRule ^ protected($ | /)/upload_files/index.php [L]
ErrorDocument 404 /uploaded_files/index.php
ErrorDocument 403 /uploaded_files/index.php
ErrorDocument 405 /uploaded_files/index.php