我正在尝试在.htaccess
文件中执行以下操作:
SetEnvIf Host sub.example.com passreq
SetEnvIf Request_URI "^\/[a-z]{2}-[a-z]{2}\/.+$" !passreq
SetEnvIf Request_URI "^(.*)/(.+)\.(jpg|jpeg|gif|png|svg|js|css|ico|ttf|eot|ot|rtt|woff|woff2)$" !passreq
设置passreq
后,我将通过以下方式触发基本身份验证:
AuthType Basic
AuthName "Password Required"
AuthUserFile /<path>/.htpasswd
Require user example
Order allow,deny
Allow from all
Deny from env=passreq
Satisfy any
1)因此,我希望能够访问以下资产:
https://sub.example.com/assets/img/example.png
2)而且,我希望能够访问以下路由:
https://sub.example.com/de-de/some-path.html
3)而且,我希望获得类似以下内容的基本身份验证:
https://sub.example.com/index.html
期望1和3正确,但数字2不起作用。尝试访问https://sub.example.com/de-de/some-path.html被基本身份验证阻止。
因此,看来SetEnvIf Request_URI "^\/[a-z]{2}-[a-z]{2}\/.+$" !passreq
并未取消passreq
设置的环境变量SetEnvIf Host sub.example.com passreq
的设置。
可能是我的错误?