【问题标题】:.htaccess subdomains and common files.htaccess 子域和公共文件
【发布时间】:2010-02-13 23:17:32
【问题描述】:

我有一个文件结构,它为多个域提供服务,其顶级 .htaccess 将请求向下推送到域特定目录:

...

ReWriteCond %{REQUEST_URI} !webroot/domains/www.sitea.com/

ReWriteRule ^(.*)$ webroot/domains/www.sitea.com/$1 [L]

ReWriteCond %{REQUEST_URI} !webroot/domains/www.siteb.com/

ReWriteRule ^(.*)$ webroot/domains/www.siteb.com/$1 [L]

...

域级别的 .htaccess(例如 webroot/domains/www.siteb.com/.htaccess)然后应用各种规则来管理域页面的 URL:

...

DirectoryIndex pageincludes/home.php

RewriteRule ^home$ pageincludes/home.php [L]

...

所以文件结构看起来像这样:

/webroot/domains/www.sitea.com/

/webroot/domains/www.siteb.com/

/webroot/js/script1.js

/webroot/images/image1.png

我的问题是我希望能够在服务页面中使用公共资源,例如:

<script type="text/javascript" src="/js/script1.js"></script> <img src="/images/image1.png" alt="80%"></img>

客户端找不到这些资源。这种模式是非首发还是有办法让它发挥作用?

非常感谢。

【问题讨论】:

    标签: php .htaccess apache2


    【解决方案1】:

    我只想在文件系统上添加符号链接。尝试重写规则有点复杂,您的 apache 服务器将不得不为每个页面一遍又一遍地处理它们。符号链接则不然。

    例如:

    ln /webroot/js /webroot/domains/www.sitea.com/js

    【讨论】:

      【解决方案2】:

      按照您现在的结构方式,请求被重写,因此他们无法看到jsimages 目录中的文件。

      我假设您希望共享资源使更新更容易,这当然是可行的(尽管是一个更好的服务器故障问题)。如果您为域文件夹中的目录设置别名(并且 apache 配置为遵循别名),您应该没问题。

      【讨论】:

        【解决方案3】:

        您能否为每个域添加一个附加条件,以免重写对这些共享资源的请求。例如

        ReWriteCond %{REQUEST_URI} !^(js|images)
        

        或者如何为共享资源使用单独的域?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-11-22
          • 1970-01-01
          • 2013-07-11
          • 1970-01-01
          • 2020-01-12
          • 1970-01-01
          • 2011-02-20
          • 1970-01-01
          相关资源
          最近更新 更多