我有一个域:www.abc.com
我想使用 Apache 虚拟主机来获取这个:
www.abc.com/index.html?id=m1 ,www.abc.com/index.html?id=m2
参观
/home/m/index.html
和
www.abc.com/index.html?id=a1 ,www.abc.com/index.html?id=a2
参观
/home/a/index.html
我可以在没有 .htaccess 的情况下使用 apache 正则表达式来完成此操作吗,如下所示:
<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 配置根本不使用任何;)
这是你的幽灵的样子。但是,如果您只在服务器上托管一个入口通过一个端口的域,请省略 <VirtualHost>
指令并将重写直接放在服务器的配置中。
<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_STRING} ^id=(.*)d$
将其更改为(.)
如果数字前面只有一个字符。如果您需要多个数字,请将其更改为:d+