每个虚拟主机使用通配符子域中的mod_rewrite

::编辑::

如何设置通配符子域名,然后重写地址?

目录结构

/var/www/domain.com // .htaccess with rewrite rules is placed here /var/www/domain.com/_admin /var/www/domain.com/_admin/tst /var/www/domain.com/_files /var/www/domain.com/_mysql 

的.htaccess

 RewriteCond %{HTTP_HOST} ^(admin|files|mysql)\.domain\.com$ [NC] RewriteCond %{REQUEST_URI} !^/_(admin|files|mysql)/ [NC] RewriteRule ^(.*)$ /_%1/$1 [L] 

当您请求http://admin.domain.com/tst ,地址被重写为http://admin.domain.com/_admin/tst

如何解决这个/_admin被隐藏?

您报告的行为似乎严格遵循您的configuration。 什么是你没有得到预期的结果?

如果您想将domain.com/pageredirect到www.domain.com/page而不是www.domain.com/domain.com/page ,这似乎是合理的,请删除此块:

 RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] RewriteCond %{REQUEST_URI} !^/domain\.com/ [NC] RewriteRule ^(.*)$ /domain.com/$1 [L]