0

説明:

/var/www/にある Web サイトが大きくなりすぎて、本質的にすべてを に移動することにしたときに、この問題に遭遇することがよくあります/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にアクセスしたかのように Web ページをロードしますか? そうでない場合、他にどのようなオプションを検討する必要がありますか?

動機:

ほとんどの場合、サイトをデバッグしたいときにこの問題に遭遇し、すぐに無料のテンプレートをダウンロードします (つまり、これをダウンロードします)。これらのテンプレートのほとんどはすべてのファイルをトップ フォルダに持っているため、すべてを にダンプするのは非常に面倒/var/wwwです。特に複数のテンプレートがある場合はそうです。私が望むのは、テンプレートのサブフォルダーを作成することですが、 www.example.com/template1/index.html から明示的にではなく、 www.example.com/index.html からロードできるようにすることです

4

1 に答える 1

2

シンボリックリンクをたどる命令はmod_rewriteの一部ではありませんが、Apacheのコアにあります

この機能を有効にするには、 FollowSymLinksOptionsディレクティブに追加する必要があります。

  <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 に答える