子域名重定向

子域名重定向

我想将所有子域 *.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

相关内容