因此我设置了我的 htaccess 文件,它看起来像这样:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
# MAGIC
RewriteCond $1 !/$
RewriteCond $1 !\.
RewriteRule ^(.+)$ /$1/ [R=301,L]
# //MAGIC
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([a-z0-9][-a-z0-9]+)\.domain\.com
RewriteCond %{REQUEST_URI} !^/subdomains/
RewriteRule ^(.*)$ /subdomains/%1/$1 [P,NC,QSA]
我工作得很好,它很好地指导phpmyadmin.domain.com到phpmyadmin.domain.com/subdomains/phpmyadmin/
但我觉得这很丑,因为 URL 中显示了这一点。所以我想让它静默地重定向,这样它仍然指向 phpmyadmin.domain.com/subdomains/phpmyadmin/但客户端只能看到phpmyadmin.domain.com
我一直在寻找,但找不到任何能像我想要的那样工作的东西。有人知道如何解决这个问题吗?
答案1
你工作太辛苦了。尝试使用VirtualDocumentRoot
带有变量。%1
将使用域的第一部分,或%-3
将使用倒数第三部分(两者对于您的情况都相同)。您需要启用模块mod_vhost_alias
使其工作。
<VirtualHost *:80>
VirtualDocumentRoot /var/www/%1
ServerName www.domain.com
ServerAlias *.domain.com
</VirtualHost>