如何在Apache中为CakePhp应用程序配置密码保护异常?
我有一个CakePHP应用程序,我想用密码保护它。棘手的是,除了一个特定的地址(一个带有CakePHP控制器的函数)之外,所有文件/位置都只能通过密码访问 地址如下: 所有其他位置只能通过密码访问如何在Apache中为CakePhp应用程序配置密码保护异常?,apache,.htaccess,cakephp,password-protection,locationmatch,Apache,.htaccess,Cakephp,Password Protection,Locationmatch,我有一个CakePHP应用程序,我想用密码保护它。棘手的是,除了一个特定的地址(一个带有CakePHP控制器的函数)之外,所有文件/位置都只能通过密码访问 地址如下: 所有其他位置只能通过密码访问 嗯,我首先在root.htaccess-文件中尝试了它,但是CakePHP的整个重写过程让它变得非常困难,在.htaccess文件中不允许使用指令。所以我尝试了,但是真正的文件总是一样的:index.php。mod_rewrite将所有地址重写为 一美元 在下一步中,我在apache配置中尝试
嗯,我首先在root
.htaccess
-文件中尝试了它,但是CakePHP的整个重写过程让它变得非常困难,在.htaccess文件中不允许使用
指令。所以我尝试了
,但是真正的文件总是一样的:index.php
。mod_rewrite将所有地址重写为
一美元
在下一步中,我在apache配置中尝试了它,并将此部分放在那里
<LocationMatch ^/MyApp/MyController/MyFunction.*>
AuthType Basic
AuthName "Secure Area"
AuthUserFile /path/to/.htpasswd
Require user MyUser
</LocationMatch>
AuthType Basic
AuthName“安全区域”
AuthUserFile/path/to/.htpasswd
需要用户MyUser
正则表达式匹配,但它是错误的方式。它保护我的功能,但不保护其他功能。您使用的是.htpasswd吗?您最好使用Cake Auth,然后可以在适当的控制器中执行此操作:
function beforeFilter() {
$this->Auth->allow('MyFunction');
}
我假设OP有理由使用htpasswd保护而不是登录系统。但我同意你的观点——我会把它放到应用程序逻辑中,这样你就可以更好地控制用户会话。。。现在我使用Cake Auth,它与allow()一起工作。谢谢,我认为您只需要颠倒regexp模式的含义。我找不到一个简单的方法来做到这一点,尽管插入符号似乎同时表示“从字符串开始匹配”和“反转模式”。我只是不能100%确定反转模式的语法。