index.htmlの正しい使い方


9

あなたの意見を聞きたいという問題がたくさんあるので、それをうまく説明できればと思います。また、私はHTMLとCSSの知識しか備えていない初心者なので、強力なPHPを使用した簡単な解決策があるとほぼ確信していますが、それは役に立ちません

私はアドレスに私の個人的なブログを持っていることをみましょうと言うexample.com/blog.htmlと、いくつかのサブのブログへのリンクがあるexample.com/blog/math.htmlexample.com/blog/coding.htmlなどが私のルートフォルダが含まれているのでblog.htmlblogフォルダは、blogフォルダ自体はファイルが含まれていますmath.htmlcoding.html

まず第一に、私は(から学んだGoogleのウェブマスターツール統一するSEOや美的目的のために、それの良いことを)example.com.comexample.com/index.html追加して_rel="canonical"_のソースに属性をindex.html。他のいくつかのトリック(やへのリンク../など./)を使用index.htmlして、Webアドレスに表示される醜い部分を取り除きました。

そして今、私はこのトリックがルートフォルダだけでなく任意のフォルダにも使用できるのだろうか?blog.htmlつまり、自分をblogフォルダに移動し、名前をに変更して、index.htmlrel="canonical"統合するように追加example.com/blog/index.htmlexample.com/blog/ます。
このトリックはから私のブログのアドレスを変更するでしょうexample.com/blog.htmlexample.com/blog/

終了していません!また、Googleロボットがフォルダのインデックスを作成するときに問題が発生しています。したがってsite:example.com/、Google検索に入力example.com/blog/すると、他の検索結果の中に、生のファイルやアイコンなどを含むフォルダへのリンクが表示されます。私はそれを修正する他の方法もあると思いますが、私が上記の変更を行うと、トリックもうまくいきます- ブログフォルダーのindex.htmlは、ユーザーがそのフォルダーの実際の生のコンテンツを閲覧できないようにし、そこにのみ表示されますexample.com/blog/グーグル検索の正しいリンクと(私はそう思います)_rel="canonical"_2番目の不要なリンクexample.com/blog/index.htmlが検索結果に表示されないようにします。

だから私の質問は:

  1. index.htmlすべてのサブフォルダーにファイルを置くのは良い習慣ですか、それともルートフォルダーのみに置くことを意図していますか?
  2. 2番目の「すべてのフォルダーのインデックス」メソッドを使用するときに発生する可能性のある欠点や問題はありますか?
  3. 上記のウェブサイトを構築する2つの方法のどちら選びますか?

私の説明として、検索エンジンは、site.com / blogsite.com/blog/index.htmlを2つの異なるファイルと見なしていますか?両方のURLのリンクが使用されている場合、リンクジュース/ページ認証局を2つの場所に分割する可能性はありますか?

私の知る限り、検索エンジン(少なくともGoogle)はそれらを2つの異なるファイルと見なしています。実際には区別できるため、2つのリンクは1つのスラッシュだけが異なる可能性があります。(詳しくはこちらをご覧ください。)はい、1つのページに2つの異なるリンクを使用している場合、ページ全体のランクが2つのリンクに分割され、ページのランクの半分が実質的に失われます。そのため、これらのリークを防ぐために、前述のリンクの正規化をお勧めします。
ジェイコモン2013年

回答:


13

私たちが使用しindex.htmlたりhome.htmlその派生物を使用したりする理由は、ウェブサーバーソフトウェア自体が実際にそれを探して提供するためです。例えば:

これは無効です:(www-directory)

/var/www/
|_blog.html
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

これは実際には、フォルダーとファイルをリストするページとして提供されます。(あなたが望むものではありません)。この構造を試すことができますが、blog.htmlの隣にindex.htmlファイルを作成することもできます。指定しないとblog.htmlが配信されないことに注意してくださいhttp://www.site.com/blog.html)これが、http://www.google.com/指定せずにページを表示する理由ですhttp://www.google.com/index.html

これは有効です:

/var/www/
|_index.html (renamed blog.html to index.html)
|_blog/
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

これは、blog.htmlファイルをホームページとして提供します。(そのディレクトリ内のすべてのフォルダ/ファイルを一覧表示しない)

ウェブサーバーソフトウェアには、(構成内に)フォルダーのホームページまたはメインページとして機能するファイル名の特別なリストがあります。(私の経験では、index.htmlあなたが持っているそうだとすれば、index.phpのよりも優先されますindex.htmlindex.php、すべての変更することができるもちろんフォルダ内に、index.htmlには、国民が見るものである)、そしてあなたがさえ設定することができますblog.htmlとして認識されるように「インデックス」。

コメントへの対応:

「このトリックは私のブログのアドレスをwww.xxx.com/blog.htmlからwww.xxx.com/blog/に変更します。」

これを行うには、blog.html完全に移動し/blog/、名前をindex.htmlに変更します。

新しい構造は次のようになります。

/var/www/
|_blog/
  |_index.html (renamed from blog.html)
  |_math.html
  |_page2.html
  |_page3.html
  |_(...)

これは、ソフトウェアがディレクトリのインデックスとして設定できるように、http://www.site.com/blog/名前を変更したblog.htmlのコンテンツを正しく表示するのに役立ちindex.htmlます。/blog/

またindex.html、サイトのルートに配置してファイルにアクセスし、http://www.site.com/(index.html)リンク/blog/やその他の必要なものを自由に利用できます。

具体的には、短いステートメントで質問に答えます。

  1. index.htmlファイルをすべてのサブフォルダーに置くのは良い習慣ですか、それともルートフォルダーのみに置くことを意図していますか?

    はい。ディレクトリにあるファイルを他の人に見られないようにするためです。これを.htaccess含むファイルでこれを防ぐことができますOptions -Indexes

  2. 2番目の「すべてのフォルダーのインデックス」メソッドを使用するときに発生する可能性のある欠点や問題はありますか?

    何も考えられない。

  3. 上記のウェブサイトを構築する2つの方法のどちらを選びますか?

    私は通常、ルートにindex.htmlor index.phpファイルを、カテゴリ(forumまたはnewsor loginなど)に基づいてサブフォルダを作成し、それぞれの中に何らかのインデックスを作成します。


そのような包括的な答えをありがとう!私のフォルダーへのそのパブリックアクセスと、それらがgoogleによってインデックスに登録されているという事実は私をかなり怒らせます。「すべてのフォルダーのインデックス」トリックに問題がないことを知ったとき、私はこのように私のウェブサイトを変更します。rel = "canonical"トリックが機能し、これらのインデックスがすべてGoogle検索に表示されないことを願っています...:D
Jeyekomon '28

6

index.htmlの専門用語は、ApacheのディレクトリインデックスとIISのデフォルトドキュメントです。関心のある他のApacheディレクティブは、Optionsディレクティブです。ドキュメントに示されているように、Options Indexesが設定されている場合:

ディレクトリにマップするURLが要求され、そのディレクトリにDirectoryIndex(たとえば、index.html)がない場合、mod_autoindexはディレクトリのフォーマットされたリストを返します。

コンテンツ管理システムを使用していないWebサイトをセットアップする場合、推奨されるセットアップは、ディレクトリごとに1つのコンテンツページを持つことです。そのページは、ディレクトリのディレクトリインデックス(デフォルトドキュメント)です。サイト上のすべてのリンクは、ディレクトリにのみリンクし、末尾にスラッシュが付いています(たとえば、のhttp://example.com/blog/代わりに、http://example.com/blog/index.htmlまたはの./blog/代わりに./blog/index.html)。末尾のスラッシュは、一般にサービスリダイレクトと呼ばれるものを避けるために重要です。(末尾のスラッシュを省略しても、すべてが正しく解決されますが、HTTP要求の数、したがって帯域幅は増加します。)

上記の方法論に対する私の主な動機は2つあります。まず、Webサイトで使用されているテクノロジーの切り替えが容易になります。たとえば、リンクや検索エンジンのリストを壊すことなく、ページをindex.htmlからindex.phpに変更できます。次に、コンテンツページのファイル拡張子は「ノイズ」です。URLからファイル拡張子を削除すると、URLが短く、できれば読みやすくなります。

他のファイルの種類については:

  • すべてのCSSファイルは、Webサイトのルートにあるcssディレクトリにあります。
  • すべての画像ファイルは、Webサイトのルートにある画像ディレクトリまたはそのサブディレクトリにあります。
  • すべてのJavaScriptファイルは、Webサイトのルートにあるスクリプトディレクトリにあります。
  • すべてのフラッシュおよびその他のムービーファイルは、Webサイトのルートにあるビデオディレクトリまたはそのサブディレクトリにあります。

ApacheサーバーでOptions Indexesは、上記のディレクトリを無効にします。ApacheサーバーとIISサーバーの両方で、上記のディレクトリのディレクトリインデックス(デフォルトドキュメント)を指定していません。したがって、いずれかのディレクトリを要求すると、HTTP 403エラーが発生します。


2つのリンク制限の制限により、ディレクトリインデックスデフォルトドキュメントへのリンクを回答に含めることができなかったので、ここにリンクします。
Ryan Prechel
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.