Php 如何使用Apache Alias指令而不是符号链接在多站点模式下设置Drupal?
我已经成功地遵循Drupal的install.txt和一些stackoverflow文章中的指南,在与我的原始(默认)Drupal站点相同的主机上的另一个子文件夹中创建了一个新站点,部分是通过使用从/bar/到/foo/的符号链接实现的Php 如何使用Apache Alias指令而不是符号链接在多站点模式下设置Drupal?,php,apache,drupal,drupal-6,Php,Apache,Drupal,Drupal 6,我已经成功地遵循Drupal的install.txt和一些stackoverflow文章中的指南,在与我的原始(默认)Drupal站点相同的主机上的另一个子文件夹中创建了一个新站点,部分是通过使用从/bar/到/foo/的符号链接实现的 Original site example.com/foo/ Additional Drupal Site example.com/bar/ 这很有效。我面临的问题是,我们不希望使用符号链接来提供重定向,因为这会对服务器造成额外的压力。在Apache中使用
Original site
example.com/foo/
Additional Drupal Site
example.com/bar/
这很有效。我面临的问题是,我们不希望使用符号链接来提供重定向,因为这会对服务器造成额外的压力。在Apache中使用Alias指令可以完成同样的事情吗
到目前为止,我们已经设置了一个别名指令来发送对/bar/到/foo/的所有请求。这会将用户发送到原始站点/foo/,而不是新站点/bar/。否则,URL将被正确写入。要使此方法正常工作,是否还需要采取一些其他步骤?如果我正确理解您的问题,您希望在两个不同的站点上使用一个Drupal安装,以避免在文件系统上重复两次源代码 符号链接似乎是一个很好的解决方案。为什么你不能用它?我真的不明白你说的“额外压力”是什么意思 我一直认为Drupal多站点系统基于服务器名(
$\u SERVER['HTTP\u HOST']
),以便在站点/文件夹中正确切换。但由于两个站点都在同一个域(和子域)下运行,Drupal将加载相同的settings.php文件
一个解决方案是在settings.php文件中添加一点逻辑。您可以检查$\u服务器[“请求URI”]
,看看它是以/foo/还是以/bar/开头。然后可以在两个数据库之间切换(每个目录一个数据库)。在这个switch或if语句中,您还必须设置$base\uURL变量,以便正确生成Drupal链接
对于上传的文件,您还必须将内容分开。您可以创建以下内容:
- 站点/foo/files
- 站点/栏/文件
PS:我也考虑过使用Apache重写规则而不是重定向,但它不起作用,因为Drupal只会生成指向目标目录的链接,因此用户将通过单击他们在生成的页面上遇到的第一个链接来重定向:-(好消息,现在一切正常!我们的测试服务器有一些奇怪的DNS设置,干扰了重定向规则。符号链接和Apache重定向指令都没有正确地将数据传递给Drupal
当我们迁移到另一个virtualhost时,没有额外的DNS重定向,一切都很好,无论我们使用的是Symlnks还是Apache指令,Drupal都能正常工作。感谢您的建议。“额外负载”这将是一个更准确的短语。我们的Web服务器无法处理比目前更多的事情,检查每个页面上的符号链接足以让我们的系统管理员感到紧张。好消息是我们能够让重写规则正常工作。