允许注册/登录用户访问目录中的文件夹文件

时间:2019-02-16 04:05:32

标签: php .htaccess url

如何仅允许注册/登录用户直接访问Web服务器上文件和文件夹的URL?

假设我有一个像http://www.example.com/quiz/这样的文件夹 该文件夹包含很多文件,index.html和用于加载测验的文件夹。

如果用户未注册或登录,则该URL必须不可访问。

2 个答案:

答案 0 :(得分:0)

您首先需要在.htaccess文件或Apache配置文件中使用类似的方法将所有请求重定向到PHP处理程序:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /quiz/index.php [L,QSA]

(如果您不使用Apache,则必须查看如何针对特定服务器执行此操作。)

然后在/quiz/index.php中,运行通常用于检查用户是否已登录的验证,如果已登录,则输出他们尝试检索的文件的内容(基于URI请求) $_SERVER['REQUEST_URI']中可用)。如果没有,请将其发送到登录页面。

答案 1 :(得分:0)

谢谢,它可以帮助您,此.htaccess解决了我的问题

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(www\.)?mywebsite\.com/ [NC]
RewriteCond %{REQUEST_URI} !hotlink\.(js|gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx|mp4|mov) [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in.*$ [NC]
RewriteRule .*\.(js|gif|png|jpg|doc|xls|pdf|html|htm|xlsx|docx|mp4|mov)$ https://mywebsite.com/log-in/ [NC]