在htaccess身份验证中排除家庭URL

时间:2019-03-10 12:20:32

标签: regex wordpress .htaccess

我有一个网站,我希望每个人都可以查看http://localhost:8080/,但密码保护所有其他URL,例如http://localhost:8080/homehttp://localhost:8080/abouthttp://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,并从黑名单中排除静态文件。

1 个答案:

答案 0 :(得分:1)

sadmansh,

您处在正确的轨道上,但方向错误。实际上,这比看起来要简单得多。您需要做的就是用密码保护所有内容,然后添加一条规则以允许所有人访问特定页面,在您的情况下为“ http://localhost:8080/”。

首先,密码保护每个文件/目录。

然后,使用以下内容允许用户访问您想要免费访问的特定链接。

将“ index.html”替换为您要共享的文件。

<Files "/index.html">
  Allow from all
  Satisfy any
</Files>

请告诉我这是否有帮助!有一个好吧。