2012-07-17 78 views
1

我有一個CakePHP的項目,包括網站的URL和一個API一個網址,說:如何保護部分cakephp網站進行舞臺部署?

對於生產部署中,網站和API都使用cakephp的方法處理認證&授權。

我想將整個項目部署在臨時服務器上。在那裏,網站應該是HTTP身份驗證保護,而API應該是不受保護的(因爲我不想爲API消費者添加身份驗證)。我不想更改項目的源代碼或配置,而是通過Apache配置來解決它。

我試了幾個虛擬主機的配置,基本上遵循這樣的方法:

<LocationMatch "/api/.*"> 
      Order allow,deny 
      Allow from all 
      Satisfy any 
    </LocationMatch> 

    <Location /> 
      Order allow,deny 
      Allow from all 
      AllowOverride all 

      AuthType Basic 
      AuthName "myproject" 
      AuthUserFile /path/to/.htpasswd 
      AuthGroupFile /path/to/.htgroup 
      Require group mytesters 
    </Location> 

我也嘗試混合位置&目錄指令,使用地點或LocationMatch爲兩個部分,否定的正則表達式LocationMatch,對於部分獨立虛擬主機, ... - 沒有任何工作:整個網站都被保護,或者什麼也沒有。

我得到的東西真的不對,或者它不可能(由於Apache或cakephp處理重寫的方式)?

回答

0

嘗試以下配置:

<Directory /path/to/your/htdocs> 
    AuthType Basic 
    AuthName "myproject" 
    AuthUserFile /path/to/.htpasswd 
    AuthGroupFile /path/to/.htgroup 
    Require valid-user 

    AllowOverride AuthConfig 
</Directory> 

<Location "/api"> 
    Satisfy any 
</Location> 
+0

不工作時,它仍然要求身份驗證爲/ API。此外,重寫規則cakephp使用需要額外的AllowOverride FileInfo選項。 – domsom 2012-07-18 09:23:45