我正在使用 Virtualmin API 使用 php 创建一系列第三级域(直到这里一切正常)。我需要一个解决方案来为每个子域提供相应的子目录,即
sub1.domain.com 位于 C:\xampp\htdocs\domain_com\subsites\sub1;
sub2.domain.com => C:\xampp\htdocs\domain_com\subsites\sub2。
我也应该使用 Virtualmin API 来执行此操作,但是用户可以看到他被重定向到的子目录,这很糟糕。子域应该在子目录中转换,在 httpd.conf 中有一个通用的解决方案,以不连续修改和重新启动 Apache。同时,显示给用户的 URL 必须保持为“sub1.domain.com/whatever_dir/user_file.php”。我尝试使用 RewriteRule 来获取它,如下所示:
<VirtualHost *:80>
ServerName www.domain.com
ServeAlias *.domain.com
DocumentRoot C:/xampp/htdoc/domain_com/
Option +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com
RewriteCond %{HTTP_HOST} ^(w*).domain.com
RewriteRule ^$ subsites/%1%{REQUEST_URI}
</VirtualHost>
使用此规则,我成功调用了“%1”目录中的所有文件。但是,如果这些文件中的任何一个调用图片或任何其他资源,则该资源的路径始终指向文档根目录,而不是调用文件。所以文件被正确调用但资源路径错误!!!
Alias、AliasMatch 也是如此。我开始意识到 Alias 和 RewriteRules 不是实现此目标的正确方法,但我不知道其他任何方法。
感谢关注。我希望有人有一个建议。伊曼纽尔。