我有一個我想用密碼保護的CakePHP應用程序。棘手的是,所有的文件/位置應該是唯一能夠使用密碼除了一個特定的地址(功能withing一個CakePHP的控制器)如何在Apache中配置CakePhp應用程序的密碼保護例外?
的地址就是這樣:
http://example.com/MyApp/MyController/MyFunction?MyParam=MyValue
所有其他位置應該是隻能用密碼
http://example.com/MyApp/MyController/MyOtherFunction
訪問http://example.com/MyApp/MyController/MyOtherFunction
http://example.com/MyApp/MyOtherController/MyOtherFunction
嗯,我第一次嘗試它的根.htaccess
- 文件,但CakePHP的整個重寫,事情使得它非常困難,而且在.htaccess檔案沒有<LocationMatch>
指令,批准。所以我嘗試了<FilesMatch>
,但真正的文件總是一樣的:index.php
。 mod_rewrite的重寫所有地址
在接下來的步驟我試了一下在Apache的配置,並把有這部分
<LocationMatch ^/MyApp/MyController/MyFunction.*>
AuthType Basic
AuthName "Secure Area"
AuthUserFile /path/to/.htpasswd
Require user MyUser
</LocationMatch>
井正則表達式匹配,但它是錯誤的方式。它保護MyFunction,但不保留其他功能。
我認爲你只需要顛倒你的正則表達式模式的含義。我找不到一個簡單的方法來做到這一點,雖然它似乎意味着脫字符表示「匹配從字符串的開始」和「反轉模式」。我只是不能100%確定反轉模式的語法。 – 2010-07-15 15:55:55