0

描述:

/var/www/当我有一个位于其中的网站变得太大时,我经常遇到这个问题,并决定将其基本上全部迁移到/var/www/main_files. /var/www/index.html简单地放置一个指向的符号链接/var/www/main_files/index.html是行不通的。我相信它不起作用的原因是index.html文件仍然在符号链接(/var/www)的目录中“执行”。因此,任何需要包含/获取的文件将不再具有正确的路径。

可以将 VHost 目录更改为/var/www/main_files,但这太永久了。我可能还想在/var/www. 我还可以手动更改实际 html/php/js 文件中的任何文件路径,但这不仅过于永久,而且速度非常慢。

问题:

有没有办法,除了使用 mod_rewrite (同样,它太永久了),来指示 Apache 遵循符号链接(假设符号链接都在 docroot 中),并且当用户访问www.example.com/index.html,加载网页,就好像用户访问了www.example.com/main_files/index.html一样?如果不是,那么我应该考虑哪些其他选择?

动机:

当我想调试一个站点时,我最常遇到这个问题,我快速下载了一个免费模板(即下载这个)。这些模板中的大多数都将所有文件都放在顶层文件夹中,因此将它们全部转储到 . 时非常混乱/var/www,尤其是使用多个模板时。我想要的是为模板创建一个子文件夹,但仍然可以从www.example.com/index.html加载它,而不是明确地从www.example.com/template1/index.html

4

1 回答 1

2

遵循符号链接的指令不是 mod_rewrite 的一部分,而是在 Apache 的核心

要启用该功能,您必须将FollowSymLinks添加到Options指令:

  <Directory /usr/local/httpd/htdocs>
    Options Indexes FollowSymLinks
  </Directory>

请参阅http://httpd.apache.org/docs/2.2/mod/core.html 指令。

于 2012-04-10T05:45:58.410 回答