带有regex的Apache虚拟主机
我有一个域名:www.abc.com 我想使用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/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+