質問: apacheにシンボリックリンクをたどらせる方法は? 私のapache wwwフォルダ(ubuntu 10.10の/var/www)には、mydir -> /home/user/mydir (私はln -sで作成しました)さて、webからmydir内のファイルのリストを見たいのなら、apacheにディレクティブfollowsymlinksを与えなければなりませんね。しかし、どこに置くのですか? .htaccessファイルでは?どこ?いろいろ試しましたが、わかりませんが....これは私の/etc/apache2/sites-enabled/000-defaultファイルです:<virtualhost *:80> serveradmin webmaster@localhost documentroot /var/www <directory /> options followsymlinks indexes allowoverride none </directory> <directory /var/www/> options indexes followsymlinks multiviews allowoverride none order allow,deny allow from all </directory> scriptalias /cgi-bin/ /usr/lib/cgi-bin/ <directory "/usr/lib/cgi-bin"> allowoverride none options +execcgi -multiviews +symlinksifownermatch order allow,deny allow from all </directory> errorlog ${apache_log_dir}/error.log # possible values include: debug, info, notice, warn, error, crit, # alert, emerg. loglevel warn customlog ${apache_log_dir}/access.log combined alias /doc/ "/usr/share/doc/" <directory "/usr/share/doc/"> options indexes multiviews followsymlinks allowoverride none order deny,allow deny from all allow from 127.0.0.0/255.0.0.0 ::1/128 </directory> alias /downloads/ "/root/mydir/" <directory "/root/mydir"> options indexes multiviews followsymlinks allowoverride none order allow,deny allow from all </directory> </virtualhost>
回答: ここに2つのことがあります。 シンボリックリンク ディレクトリ一覧 シンボリックリンク/var/wwwがあなたのデフォルト仮想ホスト用のあなたのdocumentrootであると仮定すると、あなたはあなたのデフォルト仮想ホスト設定ファイル(おそらく/etc/apache2/sites-enabled/000-default)を見つけてそれをその仮想ホストブロックの中に置くべきです。<virtualhost *:80> serveradmin webmaster@localhost documentroot /var/www <directory /> options followsymlinks allowoverride none </directory> 何も変更していなければ、そのオプションはすでに存在しているはずです。ディレクトリ一覧apacheにディレクトリ内のファイルをリストさせるには、indexesオプションも有効にする必要があります。変化する <directory /> options followsymlinks allowoverride none </directory> /etc/apache2/sites-enabled/000-defaultで次のことを行います。 <directory /> options followsymlinks indexes allowoverride none </directory> あるいは、もっと安全な方法は、次のように変更することです。 <directory /> options followsymlinks allowoverride indexes </directory> そしてこれを/home/user/mydir/.htaccessに入れます。 option indexes .htaccessが動作しない理由デフォルトでは、options <something>ファイルに.htaccessを入れても、設定ファイルの他のエントリallowoverride noneのためにうまくいきません。だからこそallowoverride indexesをそこに置かなければなりません。( allowoverrideのドキュメント )