我有一个在 ubuntu 系统上运行的 apache web 服务器。为了避免未经授权的用户访问,我有一个活动的.htaccess
:
AuthType Basic
AuthName "own area"
AuthUserFile /path/to/.htpasswd
require user username
.htacces
通过访问文档根目录中的所有文件(如),这种方法可以正常工作index.php
。在这种情况下,需要进行用户身份验证。但现在我正在寻找一种方法来禁用此用户身份验证,如果调用了特定的 uri,例如:index.php?s=abc
在这种情况下,并且只有在这种情况下,应用程序才应该无需身份验证即可使用。
有办法实现这一点吗?我不确定如何在网上搜索这个特定问题?
这是RewriteEngine
钥匙吗?
服务器虚拟主机配置具有以下配置的活动重写规则:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteRule ^/([\w]+)$ /index.php?s=$1 [L]
谢谢。
答案1
除了身份验证配置之外,还需将以下内容添加到 .htaccess 中:
# Set environment variable "allow" only for URL /index.php?s=abc
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} ^s=abc$
RewriteRule ^index.php$ - [E=allow]
# Allow access when allow is set
Order deny,allow
Deny from all
Allow from env=allow
# Grant access by Allow OR user authentication
Satisfy any