【问题标题】:relative links work when accessing folder but not domain that references folder访问文件夹而不是引用文件夹的域时,相对链接有效
【发布时间】:2012-11-06 23:56:13
【问题描述】:

我有一个域 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 来“解决”这个问题。这似乎不是处理它的最优雅的方式,但它是我现在能想到的最好的方式。如果有人有更好的告诉我!

【问题讨论】:

  • 你试过用.htaccess文件重写模式吗?

标签: php html apache url domain-name


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

        /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> 标签可以帮助您(正如 mario 所提到的那样),但是从带有此类标签的页面中跟随的任何链接都将切换回 `domain1`。

    【讨论】:

    • 谢谢。我想我忘了提到我正在尝试这样做,以便我可以拿起系统并在一组不同的域/子域组合上使用它,而无需编辑 php 或 htaccess 文件。我想我要做的是在主域的 db 中放置一个字段,然后在此基础上将 css 和 js 文件的 URL 构造为绝对 URL。
    【解决方案3】:

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

    在你的情况下:

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

    这将使所有相对 URL 都从 example1 请求资源,即使用户访问您的 example2.com 虚拟主机也是如此。尽管所有链接也会将人们重定向到那里。它会影响 JS/IMG 和可点击的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-05
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-15
      相关资源
      最近更新 更多