1

画像ディレクトリ /images/upload で「ディレクトリ禁止エラー」が発生し続けました。

そのディレクトリに autoindex を追加することで、このエラーを取り除くことができます。しかし、そのディレクトリの下にあるものを人々に見られたくありません。

このエラーを削除するにはどうすればよいですか?

Nginxの設定

server
{
  listen       80;
  server_name  www.no-dev.com;
  index        index.php index.html index.htm;
  root         /opt/www/no_web;

  location ~ .*\.(php|php5)?$
  {
    #fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include       fastcgi.conf;
  }

  #location /images {
  #  autoindex on;
  #}

  location ~* \.(css|js)$ {
              add_header  Last-Modified: $date_gmt;
              expires 1y;
              access_log off;
  }

  location ~* \.(jpg|jpeg|gif|png|ico|bmp|swf)$ {
              expires max;
              access_log off;
  }
  access_log logs/no-dev.log main;
}
4

3 に答える 3

1

次のセットがあります。

index        index.php index.html index.htm;

つまり、autoindex がオフの場合、Web サーバーはディレクトリ パスのリクエストごとに次のことを行います。

  1. そのディレクトリで index.php を探し、見つかった場合はそれを返します
  2. index.php が見つからない場合は、index.html を探して返します。
  3. index.html も見つからない場合は、index.htm を返します。
  4. それが見つからない場合は、403 が返されます。

したがって、403 エラー ページを回避したい場合は、そのディレクトリに index.php、index.html、または index htm を設定する必要があります。

error_page 403 some_page.html; または、見た目が異なる 403 結果を返すように設定することもできます。

于 2013-03-15T08:51:23.720 に答える
0

これは、 http ://example.com/ のみに対して、エラーなしで 403 ディレクトリ禁止を返します。

location = / {
    return 403;
}

だから、あなたの場合:

location = /images/upload/ {
    return 403;
}

これは、/images/upload/ ディレクトリに対してのみ、エラーなしで 403 ディレクトリ禁止を返します。

于 2016-04-21T01:11:36.963 に答える