我有一个网站,我希望每个人都可以查看http://localhost:8080/,但密码保护所有其他URL,例如http://localhost:8080/home,http://localhost:8080/about,http://localhost:8080/blog-pretty-url等。
到目前为止,这是我的.htaccess代码,但是我只能用密码保护主页和关于页面的内容,并排除静态文件,以使主页正常工作。
SetEnvIf Request_URI (\/(home|about-us)).*(?!(.*(css|js|png|svg|ico|jpg))) auth=1
AuthName "Please login"
AuthType Basic
AuthUserFile "/var/www/html/.htpasswd"
# first, allow everybody
Order Allow,Deny
Satisfy any
Allow from all
Require valid-user
# then, deny only if required
Deny from env=auth
我也尝试过此正则表达式,但无法正常工作:(\:\/\/).*(\/\w)(?!(.*(css|js|png|svg|ico|jpg)))
在编写正则表达式时提供任何帮助,以便保护除'/'之外的所有URL,并从黑名单中排除静态文件。
答案 0 :(得分:1)
sadmansh,
您处在正确的轨道上,但方向错误。实际上,这比看起来要简单得多。您需要做的就是用密码保护所有内容,然后添加一条规则以允许所有人访问特定页面,在您的情况下为“ http://localhost:8080/”。
首先,密码保护每个文件/目录。
然后,使用以下内容允许用户访问您想要免费访问的特定链接。
将“ index.html”替换为您要共享的文件。
<Files "/index.html">
Allow from all
Satisfy any
</Files>
请告诉我这是否有帮助!有一个好吧。