我想将所有子域 *.local 重定向到它们的子目录,例如:
test.local/ --> /files/test/data/
这是我的虚拟主机文件:
<VirtualHost *:80>
ServerName local
ServerAlias *.local
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.* [NC]
RewriteCond %{HTTP_HOST} ^([^\.]+)\.local
RewriteCond /files/%1/data -d
RewriteRule ^(.*) /mv/$1/data
</VirtualHost>
问题是这不起作用,我收到一个文件未找到错误。
有任何想法吗?
答案1
虽然您在 mod_rewrite 设置中还有很多事情要做,但这些VirtualDocumentRoot
能满足您的需求吗?
<VirtualHost *:80>
ServerName local
ServerAlias *.local
VirtualDocumentRoot /files/%-2/data
</VirtualHost>
(%-2
指定应使用域中的倒数第二个名字;因此在两种情况下都将使用www.test.local
和)test.local
/files/test/data