私はあなたの意見を聞きたい問題がかなりたくさんあるので、私はそれを十分にうまく説明できることを願っています。また、私はHTMLとCSSの知識しか持っていない初心者なので、強力なPHPを使用した簡単な解決策があることはほぼ確実ですが、助けにはなりません。 。
アドレスexample.com/blog.html
に個人のブログがあり、いくつかのサブブログexample.com/blog/math.html
、example.com/blog/coding.html
などへのリンクがあるとしましょう。したがって、私のルートフォルダにはblog.html
とblog
が含まれます。フォルダー、blog
フォルダー自体には、ファイルmath.html
およびcoding.html
が含まれます。
まず、( Google Webmasters Tools から)SEOと美的目的のために、example.com.com
属性とexample.com/index.html
属性を_rel="canonical"_
属性を追加して統合するのが良いことを学びましたindex.html
のソース。他のいくつかのトリック(../
や./
へのリンクなど)を使用して、Webアドレスに表示されるいindex.html
を取り除きました。
そして今、このトリックはルートフォルダだけでなくanyフォルダにも使用できるのだろうか?つまり、blog.html
をblog
フォルダーに移動し、index.html
に名前を変更し、rel="canonical"
を追加してexample.com/blog/index.html
をexample.com/blog/
に統合します。
このトリックは、私のブログのアドレスをexample.com/blog.html
からexample.com/blog/
に変更します。
終了していません!また、Googleロボットがフォルダーのインデックスを作成する際に問題が発生しています。したがって、Google検索にsite:example.com/
と入力すると、他の結果の中に、フォルダーexample.com/blog/
へのリンクが未加工のファイル、アイコンなどとともに表示されます。私はそれを修正する他の方法もあると思いますが、上記の変更もトリックを行います-ブログフォルダ内のindex.htmlはユーザーが表示されないようにしますそのフォルダの実際の生のコンテンツは、Google検索でexample.com/blog/
という正しいリンクのみが表示され、_rel="canonical"_
が2番目の不要なリンクexample.com/blog/index.html
が表示されないようにします検索結果で。
だから私の質問は:
index.html
ファイルを置くことは良い習慣ですか、それともルートフォルダーのみにあることを意図していますか?index.html
またはhome.html
またはその派生物を使用する理由は、ウェブサーバーソフトウェアitselfが実際にそれを探して提供するためです。例えば:
これは無効です:(www-directory)
/var/www/
|_blog.html
|_blog/
|_math.html
|_page2.html
|_page3.html
|_(...)
実際、これはフォルダーとファイルをリストするページとして提供されます。 (あなたが望むものではありません)。この構造を試すことができますが、blog.htmlの横にindex.htmlファイルを作成することもできます。 http://www.site.com/blog.html
を指定しない限り、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
ファイルがホームページとして提供されます。 (そのディレクトリ内のすべてのフォルダ/ファイルをリストしない)
Webサーバーソフトウェアには、(構成内に)フォルダーのホームページまたはメインページとして機能する特殊なファイル名のリストがあります。 (私の経験では、index.html
はindex.phpよりも優先されるため、フォルダー内にindex.html
とindex.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/
が正しく機能し、index.html
に名前を変更したblog.htmlの内容が表示されます。これにより、ソフトウェアがディレクトリのインデックスとして設定できるようになります/blog/
また、index.html
ファイルをサイトのルートhttp://www.site.com/(index.html)
に配置して、/blog/
やその他の任意のものへのリンクを作成することもできます。
短い文で具体的に質問に答える:
index.htmlファイルをすべてのサブフォルダーに配置することをお勧めしますか、それともルートフォルダーのみに配置することを意図していますか?
はい、それは人々があなたのディレクトリにあるファイルを見ることを防ぐためです。 .htaccess
を含むOptions -Indexes
ファイルでこれを防ぐことができます
2番目の「すべてのフォルダーのインデックス」メソッドを使用するときに発生する可能性のあるデメリットや問題はありますか?
私が考えることができるものはありません。
上記のWebサイトを構築する2つの方法のうち、どちらを選びますか?
通常、ルートにindex.html
またはindex.php
ファイルがあり、カテゴリ(forum
またはnews
またはlogin
など)に基づいたサブフォルダーがあり、それらのそれぞれの中に何らかのインデックスがあります。
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
)。末尾のスラッシュは、一般に courtesy redirect と呼ばれるものを避けるために重要です。 (末尾のスラッシュが省略された場合、すべてが引き続き正しく解決されますが、HTTP要求の数、したがって帯域幅が増加します。)
上記の方法論に対する私の主な動機は2つあります。まず、Webサイトで使用されている技術の切り替えを容易にします。たとえば、リンクや検索エンジンのリストを壊すことなく、index.htmlからindex.phpにページを変更できます。第二に、コンテンツページのファイル拡張子は「ノイズ」です。 URLからファイル拡張子を削除すると、URLが短くなり、できれば読みやすくなります。
他のファイルタイプに関して:
Apacheサーバーでは、上記のディレクトリに対してOptions Indexes
を無効にします。 ApacheサーバーとIISサーバーの両方で、上記のディレクトリのディレクトリインデックス(デフォルトドキュメント)を指定しません。したがって、ディレクトリのいずれかに対する要求は、HTTP 403エラーになります。