Apache 2.4否定SetEnvIf env变量不适用于特定的Request_URI

时间:2019-07-03 09:18:58

标签: apache .htaccess apache2 setenvif

我正在尝试在.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的设置。

可能是我的错误?

0 个答案:

没有答案