0

「index.html」ファイルをすべてのフォルダーに配置して、ページを作成しました。

たとえば、www.mysite.com/volunteers/jasmine/ は、フォルダ "jasmine" 内の index.html である jasmine のページを表示します。また、「volunteers」フォルダーには「index.html」ファイルは含まれていませんが、mysite.com/volunteers/ のように URL を入力すると、volunteers フォルダー内のすべてのフォルダーが「Index of /volunteers」という見出しの下に表示されます。

404 エラー ドキュメントは、mysite.com/volunteers ではなく mysite.com/volunteers/ をリダイレクトするのに役立ちます (最後にスラッシュが含まれます)。

この状況を取り除くのを手伝ってください。

前もって感謝します!

4

2 に答える 2

1

www.mysite.com のメイン フォルダに .htaccess というファイルを作成します。

そのファイルの先頭に次の行を追加して保存します。

IndexIgnore * 

Apache Web サーバーを使用していると仮定すると、.htaccess をチェックするように構成されている場合 (特に共有ホストではほとんどの場合)、このルールが読み取られ、ディレクトリのインデックスが防止されます。

ファイルの名前が .htaccess であることを忘れないでください (先頭にドットがあり、末尾にファイル サフィックスはありません)。


ファイルまたはダイレクト (-f または -d) が見つからない場合にルールをテストし、選択したファイルへのリダイレクトを実行する方法についても、アイデアを提供するために試してみてください。

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/volunteers/$1/$2 !-f
RewriteCond %{DOCUMENT_ROOT}/volunteers/$1/$2 !-d
RewriteRule ^volunteers/ /pageOfYourChoice.html? [R=301,L]

サーバー ルールは試行錯誤を繰り返します。そのため、その URL を .htacess トリックと共有して、達成したいことに対する最適なシナリオを判断できるようにしました。ここで、$2 を削除して、すべてをボランティアであると仮定したいかもしれませんが、アプリをどのようにセットアップしたか、およびディレクトリの数は不明です。これは試行錯誤であり、.htaccess の優れた点は、サーバーのリロード/再起動が不要であるため、試して、テストして、繰り返します。

于 2012-07-15T12:32:25.423 に答える
0

Apache と .htaccess ファイルに関する他の回答からの情報は正しいですが、Apache ではなく Microsoft IIS を Web サーバーとして使用している場合は、ディレクトリの参照を無効にする必要があります。ここで情報を参照してください。

http://technet.microsoft.com/en-us/library/cc731109(v=ws.10 )

考慮すべきもう 1 つのことは、ユーザーを別の場所にプッシュするための META REFRESH タグを持つそのフォルダーの INDEX.HTML ページを作成するだけでよいということです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <title>Untitled Document</title>
  </head>
  <meta http-equiv="refresh" content="0;URL=/index.html" />
  <body>
  </body>
</html>

.htaccess ファイルでもリダイレクトできますが、ほとんどのユーザーにとって、HTML ファイルを作成する方が迅速かつ簡単です。

于 2012-07-15T12:36:59.617 に答える