我需要从正常的htaccess Basic Auth保护中排除一个Url(甚至更好的一个前缀).像/ callbacks/myBank或/ callbacks /之类的东西.*你有任何提示怎么做?
我不想要的是如何排除文件.这必须是url(因为这是基于PHP框架的解决方案,并且所有url都使用mod_rewrite重定向到index.php).所以这个网址下没有文件.没有.
其中一些网址只是来自其他服务的回调(没有IP是未知的,所以我不能基于IP排除),他们无法提示用户/密码.
目前的定义很简单:
AuthName "Please login."
AuthGroupFile /dev/null
AuthType Basic
AuthUserFile /xxx/.htpasswd
require valid-user
Run Code Online (Sandbox Code Playgroud) 我需要设置apache到反向匹配/管理位置,这是由默认的drupal htacess文件重写的.只需要对不是/ admin/*的所有内容请求http auth
到目前为止我试过这个:
< LocationMatch "^/(?!admin)" >
AuthName "Members Only" AuthType Basic AuthBasicProvider file AuthUserFile /path/to/.htpasswd Require valid-user
< /LocationMatch >
我正在尝试排除路径(URI)被基本的http身份验证阻止.路径是/ rest(http://example.com/rest)并表示cakephp 3应用程序的控制器.它不是一个真正的文件,而是一个由重写条件重写的路径,并由webroot目录中的index.php处理.
这是重写规则:
/var/www/.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
/var/www/webroot/.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我正在运行apache 2.4并尝试了不同的配置:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/webroot
<Directory /var/www>
Options FollowSymLinks
AllowOverride All
</Directory>
<Location "/">
AuthType Basic
AuthName "Keawe Development"
AuthUserFile /host/.htpasswd
Require valid-user
Require expr %{REQUEST_URI} =~ m#/rest/.*#
Require expr %{REQUEST_URI} =~ m#/index.php/rest/.*#
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined …Run Code Online (Sandbox Code Playgroud) apache .htaccess mod-rewrite basic-authentication cakephp-3.0