我的目标是在自定义环境变量 TYPO3_CONTEXT 不等于'Production'
时要求授权。这意味着,我想在非生产环境中强制授权。
这就是我在.htaccess中所拥有的:
AuthUserFile /var/www/htpasswd
AuthName "Password Protected"
AuthType Basic
Order Deny,Allow
Deny from all
Satisfy any
Require valid-user
Allow from env=(TYPO3_CONTEXT=='Production')
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^dev.\example.\com$
RewriteRule .? - [E=TYPO3_CONTEXT:Development]
RewriteCond %{HTTP_HOST} ^www.\example.\com$
RewriteRule .? - [E=TYPO3_CONTEXT:Production]
该行中的语法是什么:
Allow from env=(TYPO3_CONTEXT=='Production')
是否有可能在此早期阶段查询env变量,导致重写规则是否在之后定义?
答案 0 :(得分:0)
您无法直接在allow指令中与env匹配,您首先需要使用SetEnvIfNoCase指令匹配预定义的env,然后使用allow指令:
#1)step 1
SetEnvIfNoCase TYPO3_CONTEXT !production allowed=1
#2)step 2
AuthUserFile /var/www/htpasswd
AuthName "Password Protected"
AuthType Basic
Order Deny,Allow
Deny from all
Satisfy any
Require valid-user
Allow from env=allowed