Apache 2.2.3 中有一个 CGI 脚本,用于浏览 syslog 服务器上的日志文件。该脚本的调用方式如下:
http://myserver/cgi-bin/logView.cgi?/var/log/syslog-ng/a/b/c/20100923.log
是否有人知道是否可以对访问此 CGI 施加 .htaccess 样式控制,但仅限于浏览某些路径时?我们希望让我们组织中的任何人都可以浏览以下 URL:
http://myserver/cgi-bin/logView.cgi?/var/log/syslog-ng/public/log/201000923.log
但如果有人去:
http://myserver/cgi-bin/logView.cgi?/var/log/syslog-ng/private/log/201000923.log
然后他们会被要求输入密码。基本上我们所有的应用程序都登录到同一个服务器,但有些日志文件只能由某些员工查看。其他的任何人都可以看到。
在此先感谢您的任何建议!
富有的
答案1
我最终找到了解决办法。
ScriptAlias /log-cgi-bin/ "/var/www/log-cgi-bin/"
ScriptAlias /secure-log-cgi-bin/ "/var/www/log-cgi-bin/"
RewriteEngine on
RewriteCond %{QUERY_STRING} ^/var/log/syslog-ng$
RewriteRule ^/log-cgi-bin/(.*)$ /secure-log-cgi-bin/$1 [R=302,L,QSA]
<Location "/secure-log-cgi-bin">
AuthUserFile /etc/httpd/conf.d/.log-view-htpasswd
AuthType Basic
AuthName "Logs"
Require valid-user
Satisfy All
</Location>
这基本上完成了工作。RewriteCond
应该改进正则表达式,以要求对小于 的任何内容都输入密码/var/log/syslog-ng/
。
富有的