我有一个域名:www.abc.com
我想使用Apache虚拟主机来实现这个目标:
GetClassNameCore()
访问
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
我可以使用apache正则表达式完成此操作而不使用.htaccess,如下所示:
/home/a/index.html
答案 0 :(得分:1)
首先,当您无法完全访问服务器时,您只需要或应该使用.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+