我有一个 CakePHP 应用程序,我想用密码保护它。棘手的是,所有文件/位置都只能通过密码访问,除了一个特定的地址(一个带有 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-Files 中不允许<LocationMatch>
使用指令。所以我试了一下<FilesMatch>
,但真正的文件总是一样的:index.php
. mod_rewrite 将所有地址重写为
在下一步中,我在 apache-configuration 中进行了尝试,并将此部分放在那里
<LocationMatch ^/MyApp/MyController/MyFunction.*>
AuthType Basic
AuthName "Secure Area"
AuthUserFile /path/to/.htpasswd
Require user MyUser
</LocationMatch>
那么正则表达式匹配,但它是错误的方式。它保护 MyFunction 但不保护其余部分。