如何通过外部文件匹配域并创建别名?

如何通过外部文件匹配域并创建别名?

使用 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 将永远不会被执行。

解决方案是将重写移出所有虚拟主机容器,或移入默认虚拟主机。

相关内容