访问文件夹时相对链接工作,但引用文件夹的域不工作

时间:2012-11-19 03:46:54

标签: php html apache url domain-name

我有一个域example.com,其中有一个文件夹example.com/folder/,其中有另一个域直接指向它,所以example2.com指向example.com/folder /

当我通过example.com/folder/访问时,一切正常,我可以访问我的css和js文件夹,这些文件夹位于example.com/css/和example.com/js/

从example2.com访问时,我没有在网站上看到css或js,当我尝试通过单击firefox中的视图源输出中的链接直接链接到它时,我得到了404。

我还应该提一下,我没有问题,包括来自example2.com文件夹下面的PHP包含,只是使用HTML中引用的相对URL。

知道如何让网站让我从example1.com/folder/和example2.com访问example2.com根目录下的这些文件夹吗?

我正在使用LAMP系统。此外,我的目标是保持系统足够灵活,以便我可以在多组域/子域中使用它,而无需编辑服务器文件或PHP。

编辑 - 我通过在我的数据库中为根域添加一个字段来解决这个问题,所有子域都将来源并为链接的js和css创建静态URL。这似乎不是处理它的最优雅的方式,但它是我现在能想到的最好的方式。如果有人有更好的让我知道!

3 个答案:

答案 0 :(得分:0)

只是一个猜测,但需要听起来像<base href=>

在你的情况下:

 <base href="http://example1.com/folder/_">

这将使所有相对URL从example1请求资源,即使用户访问您的example2.com vhost也是如此。虽然所有链接都会将人们重定向到那里。它会影响JS / IMG和点击事物。

答案 1 :(得分:0)

根据您的描述,文件夹组织如下所示:

    /path/to/domain/folder/
                   /css/   ^
                    ^      |
                    |      domain2.com
                    domain.com

domain2.com上的PHP在访问../css时不会有问题,因为它在服务器上运行,但浏览器不能再追溯/path/to/domain/folder/

我建议在服务器上创建一个符号链接(如果可能的话):

ln -s /path/to/domain/css /path/to/domain/folder/css

或者,您可以在Apache中使用Aliasdomain2.com/css设置/path/to/domain/css/

的别名

最后,<base>标记可以帮助您(如马里奥所述),但是来自带有此类标记的网页的任何链接都会切换回`domain1``。

答案 2 :(得分:0)

为了保持系统的灵活性,我决定将example1 url放入数据库和文件夹名称,这样我就可以构建我需要在HTML页面中访问的文件的绝对链接。这对我的mod_rewrite来说似乎也是必要的,它改变了尝试将这些文件的位置固定到“漂亮URL”的末尾(如example2 / post / 2 / css / main.css)。谢谢你的想法,你引导我朝着正确的方向前进!