【问题标题】:third level domain三级域
【发布时间】:2012-10-22 20:57:36
【问题描述】:

我正在使用 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 不是实现此目标的正确方法,但我不知道其他任何方法。

感谢关注。我希望有人有一个建议。 伊曼纽尔。

【问题讨论】:

    标签: apache dns apache2.2


    【解决方案1】:

    凯文,

    您应该查看http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html 为您执行此操作。只要目录结构保持不变,您以后就不必对配置进行任何更改。

    【讨论】:

      【解决方案2】:

      我已经随便解决了这个问题。 RewriteRule 具有将请求重定向到其他地方的效果。每次执行此操作时,Apache 都会为它的新设备自动召回,这会导致内部服务器错误! – 对不起,我不知道如何使用这个博客。这是修复。

      <VirtualHost :80>
        ServerName www.domain.it
        ServerAlias *.domain.it
        DocumentRoot "C:/xampp/htdocs/domain_com"
        <Directory "C:/xampp/htdocs/domain_com">
         Options FollowSymlinks
         RewriteEngine On
         RewriteCond %{HTTP_HOST} !^www.
         RewriteCond %{HTTP_HOST}%{REQUEST_URI} ^([0-9A-Za-z_-]+).domain.com(.*/?)([0-9A-Za-z-_.?&=%])$
         RewriteRule !^siti siti/%1/%2%3
        </Directory>
      

      通过这种方式,规则首先将前缀“siti/”添加到请求中,我需要其他什么。当 Apache 再次打开路径时,它将新路径与 not "!" 匹配,以 "siti" 开头的 "^" 并停止它。事实上它的功能很完美。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-09
        • 2015-07-20
        • 1970-01-01
        • 2013-06-12
        • 1970-01-01
        • 1970-01-01
        • 2016-06-22
        • 1970-01-01
        相关资源
        最近更新 更多