我希望将 www.example.com 和 example.com 之外的任何内容定向到不同的根目录。
例如 example.com 和
example.com/page 将会转到两个独立的根目录。
我需要这样做,以便在开发过程中可以将主页定向到其他地方。
以下是我网站的虚拟主机的样子。
ServerName www.example.com
ServerAlias *.example.com
DocumentRoot /var/www/example
答案1
.htaccess
在 /var/www/example 上的文件上尝试此操作:
RewriteEngine on
RewriteCond %{HTTP_HOST} !www.example.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).example.com [NC]
RewriteRule (.*) %2/other_folder/$1 [L]
这会将除 www.example.com 和 example.com 之外的任何内容重定向到另一个文件夹。
或者
要真正拥有不同的 DocumentRoot,您需要创建一个新的 VirtualHost,您可以尝试例如:
<virtualhost *:80>
ServerName www.example.com
ServerAlias example.com
DocumentRoot /var/www/example
</virtualhost>
<virtualhost *:80>
ServerName anything.example.com
ServerAlias *.example.com
DocumentRoot /var/www/another_example_root_folder
</virtualhost>
因此,您的第一个虚拟主机只能带有和不带有 www,而第二个虚拟主机则不能带有其他任何内容。