2013-05-17 114 views
1

我想保護某些文件,我仍然從不受保護的訪問中工作,所以我猜想,我只是在文件名中使用了一個標識符,如「_temp」,並保護所有的url匹配htaccess的。通過匹配保護密碼

將這與FileMatch用於文件是很好的,但我也已經寫了幾個htaccess線,所以GET站點參數成爲一個子域。子域名不是文件,所以沒有FileMatch。另外我注意到,_不會出現有效的子域^^如此「 溫度。」應該是足夠了...

然後我用SetEnvIf之後,但它要麼不保護任何東西,或一切在所有情況下。 你能告訴我我做錯了什麼嗎?

SetEnvIf HOST .*temp.* notallowed 
SetEnvIf Request_URI .*temp.* notallowed 

AuthType Basic 
AuthName "Under construction" 
AuthUserFile /home/auth/.htpasswd 
AuthGroupFile /home/auth/.htgroup 

Order Deny,Allow 
Satisfy any 
Deny from env=notallowed 
Require user qwerty 
Allow from all 

這應該給我在huitemp.mysite.de,hui.mysite.de/huitemp.php和hui.mysite.de/?site=huitemp一個密碼提示,但不是hui.mysite.de 。

PS,我也發現了這個帖子: Password protect a cname subdomain with .htaccess? 但它是一種相反的我想要做的和頂級的例子並沒有真正爲我工作(因爲筆者已經說過)的。

回答

1

嘗試從所有先否認,再從允許notallowed:

SetEnvIf HOST .*temp.* notallowed=true 
SetEnvIf Request_URI .*temp.* notallowed=true 

AuthType Basic 
AuthName "Under construction" 
AuthUserFile /home/auth/.htpasswd 
AuthGroupFile /home/auth/.htgroup 

Order Deny,Allow 
Deny from all 
Satisfy any 
Require user qwerty 
Allow from env=!notallowed 
+0

好,這將阻止所有的網站,不管是否含有溫度與否。 .htaccess的末尾是否有一些RewriteCond和RewriteRules? – Julian

+0

@Julian如果你有規則,除非規則將URI改爲「temp」或其他類型的訪問控制(如使用'F'標誌),否則無關緊要。 –

+0

那麼他們正在改變網站。我將子域重定向爲index.php的參數並更改顯示,因此此參數始終顯示爲子域。但是我沒有使用F-Flag,ohne'L','R','NC'和'QSA' ......啊,我感覺很愚蠢......當然我把網站改成了「mysite」,但原始名稱包含temp ^^所以,使用_temp它可能已經工作,但由於_不允許...我使用了另一個短語,現在它工作^^再次感謝! – Julian