我想匹配定义为ServerName
,ServerAlias
和DocumentRoot
正则表达式的值。
前面的任何东西#
都可以忽略。
我还想将每个虚拟主机的定义分开,所以在下面的示例中,我将有两个数组。
例子:
<VirtualHost *:80>
ServerName foo.com
ServerAlias stage.foo.com new.foo.com
DocumentRoot /var/www/foo.com
</VirtualHost>
<VirtualHost *:80 *:443>
ServerName bar.com
ServerAlias store.bar.com
#ServerAlias new.bar.com us.bar.com
DocumentRoot /var/www/bar.com
</VirtualHost>
我的工作:
<VirtualHost(?: \*\:[0-9]*)+>\s*
将匹配每个虚拟主机的开头“标签”加上尾随空格。
[^\#](?:ServerName|ServerAlias|DocumentRoot) ((?:(?:[\w\/\._-]+) ?)+)
将匹配我需要的值,但不会作为单独的虚拟主机/集/数组。
我无法将它们连接在一起。