使用 Apache。我有一个包含域的 txt 文件,我想用它来映射目录别名。但我搞不懂。
该 txt 文件如下所示:
example.com folder1
anotherexample.com folder2
subdomain.example.com folder3
...500 domains...
请求应该example.com/data/
解决/var/private/folder1/
。
我已经在虚拟主机指令中尝试了以下内容:
<VirtualHost *:80>
ServerName www.site.com
ServerAlias *.site.com
DocumentRoot "/var/www/project"
RewriteEngine On
RewriteMap ref "txt:/var/path/to/domains.map"
RewriteCond ${ref:%{HTTP_HOST}} ^.+$
RewriteRule ^/data "/var/private/${ref:%{HTTP_HOST}}" [L]
</VirtualHost>
答案1
问题可能是您尝试从 site.com 的虚拟主机内部重定向一堆其他域。如果 site.com 不是默认虚拟主机,那么您的 RewriteRule 将永远不会被执行。
解决方案是将重写移出所有虚拟主机容器,或移入默认虚拟主机。