如何仅允许注册/登录用户直接访问Web服务器上文件和文件夹的URL?
假设我有一个像http://www.example.com/quiz/这样的文件夹 该文件夹包含很多文件,index.html和用于加载测验的文件夹。
如果用户未注册或登录,则该URL必须不可访问。
答案 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]