![每个 vhost 中带有通配符子域的 mod_rewrite](https://linux22.com/image/550323/%E6%AF%8F%E4%B8%AA%20vhost%20%E4%B8%AD%E5%B8%A6%E6%9C%89%E9%80%9A%E9%85%8D%E7%AC%A6%E5%AD%90%E5%9F%9F%E7%9A%84%20mod_rewrite.png)
:: 编辑 ::
如何设置通配符子域名然后重写地址?
目录结构
/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
被隐藏?
答案1
您报告的行为似乎与您的配置非常接近。您没有得到预期的结果是什么?
如果您想要重定向domain.com/page
到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]