这是我的配置。有人能告诉我它有什么问题吗?
auth_basic 不起作用
location = /bitrix/admin/(fileman_admin.php|perfmon_sql_list.php|webdebug_image_profiles.php) {
satisfy any; # allow access if authorization is successful
auth_basic "admin site";
auth_basic_user_file /var/www/my.server/htdocs/mysite/.htpasswd;
}
但同时这有效:
location = /bitrix/admin/fileman_admin.php {..}
拒绝访问的最佳方法是什么
site.com/bitrix/admin/fileman_admin.php
site.com/bitrix/admin/perfmon_sql_list.php
site.com/bitrix/admin/webdebug_image_profiles.php
答案1
- (无):如果没有修饰符,则位置将被解释为前缀匹配。这意味着给定的位置将与请求 URI 的开头进行匹配以确定匹配。
- =:如果使用等号,则当请求 URI 与给定的位置完全匹配时,该块将被视为匹配。
- ~:如果存在波浪号修饰符,则该位置将被解释为区分大小写的正则表达式匹配。
- ~*:如果使用波浪号和星号修饰符,则位置块将被解释为不区分大小写的正则表达式匹配。
- ^~:如果存在插入符号和波浪号修饰符,并且如果该块被选为最佳非正则表达式匹配,则不会进行正则表达式匹配。
您必须使用波浪号(~
)符号来设置正则表达式路径:
location ~ ^/bitrix/admin/(fileman_admin.php|perfmon_sql_list.php)$ {
...
}