带有regex的Apache虚拟主机

带有regex的Apache虚拟主机,apache,virtualhost,Apache,Virtualhost,我有一个域名:www.abc.com 我想使用Apache虚拟主机获取以下内容: www.abc.com/index.html?id=m1 ,www.abc.com/index.html?id=m2 拜访 /home/m/index.html /home/a/index.html 及 拜访 /home/m/index.html /home/a/index.html 我是否可以使用apache正则表达式在没有.htaccess的情况下完成此操作,如下所示: <VirtualHost

我有一个域名:www.abc.com

我想使用Apache虚拟主机获取以下内容:

www.abc.com/index.html?id=m1 ,www.abc.com/index.html?id=m2
拜访

/home/m/index.html
/home/a/index.html

拜访

/home/m/index.html
/home/a/index.html
我是否可以使用apache正则表达式在没有.htaccess的情况下完成此操作,如下所示:

<VirtualHost (www.abc.me/*?id=a*):80>
    DocumentRoot /var/www/html/laohu_v1
    ServerName www.abc.me
    ServerAlias www.abc.me/*?id=a*
</VirtualHost>

首先,当您没有对服务器的完全访问权限时,您只需要或应该使用.htaccess。Vhost不需要放入.htaccess。我们的Apache配置根本不使用任何东西

以下是您的vhost的外观。但是,如果您在服务器上只托管一个域,并且入口位于一个端口上,那么请忽略该指令,并将重写直接放在服务器的配置中

<VirtualHost *:80>
    DocumentRoot /var/www/html/laohu_v1
    ServerName abc.me
    ServerAlias www.abc.me

    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^id=(.*)\d$ 
    RewriteRule ^(.*) /home/%1/index.html
</VirtualHost>
RewriteCond%{QUERY\u STRING}^id=.*\d$将其更改为。如果数字前面只有一个字符。如果需要多个数字,请将其更改为:\d+