次の仮想ホストを構成しています。
<VirtualHost *:80>
DocumentRoot /var/www/myvhost
ServerName myv.Host.com
ServerAlias myv.Host.com
ErrorLog logs/myvhost-error_log
CustomLog logs/myvhost-access_log combined
ServerAdmin [email protected]
<Directory /var/www/myvhost>
AllowOverride All
Options +Indexes
</Directory>
</VirtualHost>
構成appearsapachectl
ツールの観点から正しいこと。
ただし、その仮想ホストでディレクトリリストを取得できません。
Forbidden
You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
エラーログには次のように表示されます。
[Wed Mar 07 19:23:33 2012] [error] [client 66.6.145.214] Directory index forbidden by Options directive: /var/www/******
最近では、以下がerror.logに組み込まれています。
[Wed Mar 07 20:16:10 2012] [error] [client 192.152.243.233] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/error/noindex.html
今日、次のものが追い出されています:
[Thu Mar 08 14:05:56 2012] [error] [client 66.6.145.214] Directory index forbidden by Options directive: /var/www/<mydir>
[Thu Mar 08 14:05:56 2012] [error] [client 66.6.145.214] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/error/noindex.html
[Thu Mar 08 14:05:57 2012] [error] [client 66.6.145.214] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
これは、vhosts.conf
ファイルを次のように変更した後です。
<VirtualHost *:80>
DocumentRoot /var/www/<mydir>
ServerName myhost
ServerAlias myhost
ErrorLog logs/myhost-error_log
CustomLog logs/myhost-access_log combined
ServerAdmin admin@myhost
<Directory "/var/www/<mydir>">
Options All +Indexes +FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
何が欠けている?
すべてルートディレクトリのサブディレクトリはディレクトリリストを適切に実行します-それはのみできないルートです。
index.html
サブディレクトリにリロードするルートのファイルディレクトリ自体をトラバースできない理由を知りたいのですが、これは今のところ機能しています。
403は、リソースが見つかったことを意味します。 Apacheに、ドキュメントルートとその上のすべてのディレクトリ、およびその中のファイルをr-x
r--
するためのある程度の権限があることを確認してください。
Directoryディレクティブをに変更してみてください
<Directory /var/www/myvhost>
AllowOverride All
Options +Indexes
Order allow,deny
Allow from all
</Directory>
私は今日同様の問題を抱えていましたが、上記のようなエラーが発生しました。
[Wed Oct 17 14:19:08 2012] [error] [client 123.66.66.22] Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/mysite/
+/-の有無にかかわらずオプションを混在させることは問題があります。 オプションに関するApacheのドキュメント に注意してください
+または-を含むオプションとそれらを含まないオプションを混在させることは有効な構文ではなく、サーバーの起動時に構文チェックによって中止され、中止されます。
また、+ /-なしでディレクティブを有効に使用すると、そのディレクトリに対して以前に設定された他のすべてのディレクティブが削除されます。
+なしでインデックスを使用しましたが、上記でコピーしたエラーが発生しました。
.htaccessファイルを使用していないと言うので、Directoryディレクティブを次のように変更してみませんか。
<Directory /var/www/myvhost>
AllowOverride None
Options +Indexes
Order allow,deny
Allow from all
</Directory>
私のCentOS 5/6/7システムでは、この問題はシステムに付属しているデフォルトの/etc/httpd/conf.d/welcome.confでの何らかの競合によって引き起こされます。 welcome.confのすべての行をコメントアウトしてWebサーバーを再起動すると、ディレクトリインデックスがwebrootで表示できるようになります。これは、少なくともRed Hat/CentOSシステムだけで出荷されるデフォルトのWebサーバー設定のバグであるように見えますが、他のシステムにも潜在的にある可能性があります。システムで同様の問題が発生している可能性があります。