2012-04-10 17 views
0

説明:

私は頻繁に私があまりにも大きくなり/var/www/にあるウェブサイトを持っている場合、この問題に遭遇し、/var/www/main_filesに、その本質的にすべて、移動することを決定しました。単に、シンボリックリンク/var/www/index.html/var/www/main_files/index.htmlを指していると動作しません。私はそれが機能しない理由は、index.htmlファイルがまだシンボリックリンク(/var/www)のディレクトリで "実行"されていると考えています。したがって、インクルード/フェッチする必要のあるファイルは、正しいパスを持たなくなります。既存のWebサイトフォルダへのシンボリックリンクをすばやく簡単に作成する方法はありますか?

VHostディレクトリを/var/www/main_filesに変更する可能性がありますが、それはあまりにも永久です。私はまだ/var/wwwにいくつかのファイルを置いておきたいかもしれません。また、実際のhtml/php/jsファイル内のファイルパスを手動で変更することもできますが、これはあまりに永久的なだけではなく、辛抱強く遅いです。

質問:

は方法は、mod_rewriteのを(再度、あまりにも永続的である)を使用しての短いあり、シンボリックリンクをたどるようにApacheを指示する(シンボリックリンクを前提としているすべてのドキュメントルート内の)ユーザーが行くとき、および www.example.com/index.htmlに、 www.example.com/main_files/index.htmlにアクセスしたかのようにウェブページを読み込みますか?そうでない場合は、他にどのようなオプションを検討する必要がありますか?

動機:

私はサイトをデバッグしたいときに私が最も頻繁にこの問題に遭遇し、私はすぐに無料のテンプレートをダウンロードする(すなわちdownload this one)。これらのテンプレートのほとんどはトップフォルダにすべてのファイルを持っており、特に1つ以上のテンプレートを使用してすべてを/var/wwwにダンプするのは面倒です。私が欲しいのは、テンプレート用のサブフォルダを作成することですが、それでもwww.example.com/template1/index.html

からではなく、明示的に、 www.example.com/index.htmlからそれをロードすることができます

答えて

2

シンボリックリンクをフォローする命令がmod_rewriteをの一部ではありませんが、あなたはオプションディレクティブにはFollowSymLinksを追加する必要があります機能を有効にするにはApache

のコアにある:

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

http://httpd.apache.org/docs/2.2/mod/core.html指示を参照してください。

+0

しかし、apacheはシンボリックリンクに従いますか?例えば、/home/foo/bar/index.htmlを指し示すシンボリックリンクを設定するとどうなりますか? (ありがとうbtw) – puk

+0

これは私が欲しいものは本当ですか? 'Options -Indexes + FollowSymLinks'のように全部次のようなことがあったからです。 – puk

+0

ドキュメントルート内のファイルをリダイレクトするだけなら、mod_rewriteを使うことができます。シンボリックリンクを使用する場合は、オプションで有効にする必要があります。 おそらくシンボリックリンクは必要なく、書き換えルールだけです(http://stackoverflow.com/questions/990392/htaccess-rewrite-to-redirect-root-url-to-subdirectory – lrosa

関連する問題