.htaccess 从特定控制器中排除HTTP身份验证

.htaccess 从特定控制器中排除HTTP身份验证,.htaccess,cakephp,.htpasswd,.htaccess,Cakephp,.htpasswd,我有一个用CakePHP 2编写的应用程序,它通过.htaccess文件提供HTTP保护。webroot中的某个目录中已经存在异常,并且运行良好 AuthType Basic AuthName "My Application" AuthUserFile /my/application/path/.htpasswd Require valid-user SetEnvIf Request_URI "files/photos/" allow Order allow,deny Allow from

我有一个用CakePHP 2编写的应用程序,它通过.htaccess文件提供HTTP保护。webroot中的某个目录中已经存在异常,并且运行良好

AuthType Basic
AuthName "My Application"
AuthUserFile /my/application/path/.htpasswd
Require valid-user

SetEnvIf Request_URI "files/photos/" allow

Order allow,deny
Allow from env=allow
Satisfy any
但是现在还需要一个特定URL的例外,它是某个控制器的视图。我试图简单地添加这一行,但它没有工作,仍然要求用户名和密码

SetEnvIf Request_URI "users/confirmation/" allow
我有UsersController和确认方法。关键是一个是物理路径,另一个是虚拟路径


有没有解决这个问题的办法?

如果您使用的是cakephp身份验证,那么您可以从身份验证中排除控制器的某些操作。因此,请在下面的特定控制器(例如UsersController)中写一行

过滤前的公共功能 { 父::beforeFilter; $this->Auth->允许“注册”、“忘记密码”、“重置密码”、“密码”、“登录”、“注销”;
} 通过更改包含要被身份验证忽略的路径的行来解决:

SetEnvIf Request_URI "files/photos/" noauth=1
SetEnvIf Request_URI "users/confirmation/*" noauth=1
然后,添加带有重定向前缀的异常:


不幸的是,这并没有回答我的问题,因为我通过.htaccess文件使用HTTP身份验证,而不是直接在Auth库上使用。不管怎样,谢谢你的回复。好的。我明白了。我会设法解决的。非常感谢。
Allow from env=REDIRECT_noauth