我有一个 Dreamhost 虚拟专用服务器。我正在尝试创建一个我的所有域都可以访问的共享文件夹。我想在这个文件夹中放置 PHP 类,甚至是 javascript 之类的静态文件。
我创建了一个与我的域文件夹同级的目录。我想通过类似这样的方式调用文件...。/home/username/shared/file.php
但是,这对于静态文件不起作用,我希望一些魔法(比如 .htaccess)可以让它工作。
这有效:
<?php include('/home/username/shared/file.php'); ?>
这不起作用:
<link rel="stylesheet" type="text/css" href="/home/username/shared/reset.css" media="screen" />
或者,我意识到我可以将静态文件放在域内,然后简单地指向它们,但我想知道如何使这个其他配置工作。
答案1
您永远无法将基于服务器路径的文件包含在这样的 HTML 文件中,因为该路径超出了 public_html 的范围。
我知道你想做什么,但老实说,我认为这并不容易实现。为什么不在“主”域上设置一个子域,所有域都从该子域获取文件?如果你追求完美的 SEO(因为我相信它在技术上属于跨域引用),那么这可能不太可取,但对我来说,将某些全局必需的文件(图像等)放在 files.primarydomain.tld 上效果很好。
此外,考虑到 Dreamhost 处理不同用户文件的方式,这可能会非常麻烦。他们的设置可能最好只设置一个用户名和一个子域,并让它只处理全局文件,特别是如果你每个网站都有一个用户名,那么该用户名将没有文件系统权限来访问另一个用户名目录中保存的文件。(而基于 .htaccess-mod-rewrite 的规则只会给自己挖坑,即使它是可能的!)
答案2
使用符号链接(symlink)。
我最初在 StackOverflow 上问了这个问题(我当时还不知道这个网站),现在终于有答案了。答案和解释可以在这里