.htaccess子域和常用文件

时间:2010-02-12 12:28:03

标签: php .htaccess apache2

我有一个文件结构,为顶级域.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>

客户端找不到这些资源。这种模式是不起作用的还是有一种方法可以让它发挥作用?

非常感谢。

3 个答案:

答案 0 :(得分:1)

我只想在文件系统上添加符号链接。尝试重写规则有点复杂,你的apache服务器必须为每个页面反复处理它们。对于符号链接不是这样。

例如:

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

答案 1 :(得分:0)

现在,您构建它的方式会重写请求,因此无法查看jsimages目录中的文件。

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

答案 2 :(得分:0)

是否可以为每个域添加其他条件,以免重写对这些共享资源的请求。 e.g。

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

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