我正在尝试配置 awstats,使我拥有一个未经身份验证的站点和另一个经过身份验证的站点。更具体地说是
domain/awstats/awstats.pl?config=X 不应该经过身份验证的
域/awstats/awstats.pl?config=是 应该已认证
经过大量搜索后我还没有找到任何解决方案,因为这与查询字符串有关。
答案1
我首先想到的方法是:首先设置awstats
一个只监听本地主机的虚拟主机...
<VirtualHost 127.0.0.1:8080>
...
</VirtualHost>
里面该虚拟主机,包括RewriteRules
将基于路径的 URL 转换为适当的查询字符串:
RewriteRule /awstats/config/(.*) /awstats/awstats.pl?config=$1
有了这个,您可以访问:
/awstats/awstats.pl?config=X
使用:
/awstats/config/X
但请注意,目前,这些功能仅可通过 获得localhost
。我们尚未建立外部连接。为此,我们将<Location>
在您的主服务器配置中放置以下块:
- 实施必要的访问控制
- 将请求代理到“内部”虚拟主机
像这样:
<Location /awstats/config/X>
ProxyPass http://localhost:8080/awstats/config/X
</Location>
<Location /awstats/config/Y>
AuthType Basic
AuthName "awstats X"
AuthBasicProvider file
AuthUserFile /path/to/htpasswd
require valid-user
ProxyPass http://localhost:8080/awstats/config/Y
</Location>
这些都是即兴的,因此完全有可能存在一些错误,但基本思想是正确的。