多くの場合、URL拡張機能は非表示になっています(例:.html
、.php
)。ただし、すべてのWebサイトがこれを行うわけではありません。
ウェブマスターが拡張機能を隠すのはなぜですか?セキュリティのためか、URLがきれいに見えるようにするためか、それとも他の目的のためですか?
URLから拡張子を削除する理由はいくつかあります。
多くのサイトは、URLが/index.php?page=this-is-the-widget-page
のようになるコンテンツ管理システム(CMS)によって生成されることに注意してください。これは特にく、単なる拡張機能よりもはるかに厄介です。 index.php?page=
を削除するように書き換えると、はるかに改善されます。
サーバーはドキュメントのタイプをヘッダーとして送信するため、Web上で拡張機能は必要ありません。 Webページはtext/html
、画像はimage/png
またはimage/jpeg
として提供されます。これにより、ブラウザは拡張機能を使用せずにコンテンツをレンダリングする方法を知ることができ、URLにテキスト、HTML、PDFまたは画像が含まれていることがわかります(詳細については、Wikipediaの記事 インターネットメディアタイプ =)。
一部のウェブマスターは、このコンテンツタイプに一致する拡張子をURLで使用することを選択します。したがって、text/html
ドキュメントには.html
拡張があり、image/png
ドキュメントには.png
拡張があります。これは、コンテンツタイプに関するメタデータが失われるファイルシステムにURLが保存される場合に役立ちます。ほとんどのファイルシステムでは、ファイルを開くプログラムは拡張子によって選択されます。そのため、ページがPHPによって提供されている場合でも、一部のWebマスターは.php
拡張を削除し、一部は.html
に置き換えます。
また、 RLが拡張子を持たない場合、末尾のスラッシュ(/
)で終わる方が良いかもしれません についての質問もあります。これは、スタックオーバーフローについて多くの議論があります。
すべてのWebサーバーには、1つ以上の「デフォルトファイル」があります。訪問者がスラッシュ/
で終わるURL、つまりフォルダにアクセスするたびに表示されるファイルです。
Webサーバーのデフォルトのファイル名がindex.php
であり、訪問者がwww.example.com/pagename/
にアクセスする場合、それらは実際www.example.com/pagename/index.php
にアクセスしています。
末尾に/
がない場合、WebサーバーはおそらくURLを書き換えて削除するだけです。必要がないためです。実際、このサイトはそうしています。
これは、私自身の個人Webサイトで目指している「クールな」URIスキームのタイプです。
個人的に、私がそうし始めた理由は(そしておそらくもっと多くのWebデザイナー/開発者も!)記事を読んだ後です 「Cool URIs not change」 –このドキュメントは世界によって書かれましたワイドウェブの創設者であるティムバーナーズリー。
Tim Berners-Leeの有名な記事で、彼は基本的に Stephen Ostermiller が この質問に対する優れた答え に持っている同じ理由を述べています。
「拡張機能がURLに隠されている理由」という主な質問に対してより具体的な回答をするために、私は主な理由は次のとおりです。
1。 URIを将来に備えて:
たとえば、当時のhttp://www.example.com/page.pl
のようなURIを使用するのは良いアイデアのように聞こえたかもしれません。ここで、.pl
はPerlスクリプトのファイル拡張子です。ただし、最近では、ほとんどのWeb開発者はバックエンドスクリプトにASP.NETまたはPHPを使用しているため、today、http://www.example.com/page.php
の方が良いようですアイデア、最終的にPHPおよびASP/ASP.netは時代遅れになります。そのため、拡張機能を完全に削除することをお勧めします。
2。可読性と記憶性:
覚えやすいことは言うまでもなく、「クール」なURIを口頭で、紙の上で(たとえば、広告、名刺など)人に渡すのがはるかに簡単です。
3。 「ハッキング可能性」*
最近のユーザーの大部分はおそらくすべての検索エンジンを経由していると思いますが、アドレスバーに移動してwww.google.com
と入力してから、Googleを使用して文字どおりに入力する人を見たこともありますwww.ebay.com
!しかし、マルチメディアに基づいたWebサイトがある場合、URI http://www.example.com/video
は、音楽セクションがURI http://www.example.com/audio
などの下にあることを示唆していると思います。 (私はまだアドレスバーを使用してWebサイトにアクセスしています-私はその種のことについてかなり「昔ながら」です!)
*(Oh!“ Hackability” –そのWordは存在しますか?!まあ、それdoesnow !):-)
4。 **美学:それらをきれいに見せるために! (私のOCDを非難!)
ただし、SEO関連のさまざまなWebサイトを読んで、多くのWebメーザーが実際にファイル拡張子を動的URIに追加していることに気付きました。
実際のURIは次のとおりです:http://www.example.com/article
ただし、ウェブマスターは書き換えを実行して、URIを「見た目」に静的にします。たとえば、http://www.example.com/article.html
この背後にあるロジックは、基本的に、検索エンジンが静的ページに高いランキングを割り当てることです(明らかに、変更される可能性は低い)。 (私はSEOの専門家ではありませんが、個人的にはこの考えに賛同していません。GoogleとBingのアルゴリズムの背後にある一種の心で、 SERPポールポジションにあなたの方法を詐欺!)
URIの命名の詳細については、次の記事を読むことをお勧めします。
ティム・バーナーズ=リー:
W3C QAのヒント:
Brian Kelly(UK Web Focus/UKOLN-バース大学):
お役に立てれば!
上記のすべての答えに完全に同意します。拡張機能がURLに表示されない理由の1つを追加するだけで、セキュリティが確保されます。簡単に言えば、URLで拡張機能を公開しない場合、アプリケーションが構築されているテクノロジを把握することはほとんど困難です。したがって、PHPで作成されたページで拡張機能が非表示になっていない場合、ハッカーはPHPの脆弱性を潜在的に把握し、それを使用して悪意のあるアクティビティを実行できます。
ページの拡張機能を非表示にするかどうかに関係なく、ユーザーはあなたがどのテクノロジーを使用したかを知ることができます。 cURLを使用することで、ヘッダー情報を取得してテクノロジーを取得することは不可能ではありません。
curl -I -L rembatvideo.ga
次に、テクノロジー、キャッシュ要求、接続などのようなものが表示されます。
「Stephen Ostermiller」が説明するとおり完全に同意しますが、URLの拡張子を隠すための秘trickに言及したいと思います。そのためには、。htaccess書き換えルールを使用する必要があります。これを支援するスクリプトを次に示します。
外部.php
リクエストを拡張子のないURLにリダイレクトする
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/$1 [R=301,L]