拡張なしURL IISの
使用するスクリプトのファイル拡張子を削除または非表示にすることが重要な場合があります。 Webサイトや静的サイトホストに使用しているスクリプト言語を他の人に知られたくない場合は、あいまいさによるセキュリティがその理由にな この例では、IIS URL Rewriteモジュールを使用して.php
拡張機能をすぐに使用できるwebで非表示にします。&htaccessの例。
なぜURLのファイル拡張子を非表示にする必要があるのですか?
私はあいまいさによるセキュリティのファンではなく、セキュリティスキャンの結果としてこれに遭遇したことはありません。
あいまいさによるセキュリティは、あなたのウェブサイトに使用しているスクリプト言語を他の人に知らせたくない場合、URLのファイル拡張子を非 検索エンジン最適化(SEO)は、別の正当な理由である、またはおそらくあなただけの明白な理由もなく、ファイル拡張子を非表示にしたいです。
私の知る限り、SEOのための利点もありません。
ただし、この手法を使用してURLを少し短くすることができます。 これは、URLから4〜5文字を削り取ります(”。php”,”.html”,”.aspx”)。 また、webサーバーは、ファイルの拡張子を持つURLよりも、フォルダ(ディレクトリ)への拡張子のないURLを高速に一致させることができるため、webサイトの
と言う人もいます。 私はこれに関するデータや詳細情報を持っていません。
IISのURL書き換えモジュールを使用したphp拡張
ここでは、非表示にするためのIIS URL書き換えモジュールの例を示します。URLのphp拡張機能。
この手法は、Apacheではマルチビューやコンテントネゴシエーションとも呼ばれ、他の人は拡張なしUrlと呼んでいます。 Withを使用する例については、以下を参照してください。IISのhtaccess。
マルチビュー、またはコンテントネゴシエーションについて:
サーバが/some/dir/fooのリクエストを受信した場合、/some/dirにMultiViewsが有効になっていて、/some/dir/fooが存在しない場合、サーバはfooという名前のファイルを探してディレクト*、そして効果的にそれらのすべてのファイルに名前を付けるタイプマップを偽造し、クライアントが名前でそれらのいずれかを要求した場合と同じ 次に、クライアントの要件に最適なものを選択します。
以下の書き換えをweb.config
ファイルに入れて非表示にします。あなたのURLのphp拡張子。urlからphpを使用しますが、これによりwww.example.com/index
のような拡張機能のないURLを使用できます。
IISのURL書き換えモジュールは、バックグラウンドのURLに.php
部分を追加します。
Code language: HTML, XML (xml)
すでにaを含む要求の拡張子を非表示にします。php extension
より拡張された例は、すべての要求をリダイレクトすることです。その拡張子のないバリアントへのURLのphp。 そのため、訪問者が/index.php
を通って入ってくると、拡張子は取り除かれ、彼は/index
に向けられます。
私たちの書き換えルールは、最終的な要求をインデックスに戻します。拡張機能を表示せずにphp。
Code language: HTML, XML (xml)
本番環境に入れる前に、必ずそのような例をテストしてください。
を使用してIISでApache Multiviewsをエミュレートします。htaccessファイルとヘリコンエイプ
を使用する場合。IISでhtaccessを使用すると、非表示にするのと同じMultiviews効果を作成することができます。phpの拡張機能。 これを実現するには、いくつかの書き換え条件と書き換えルール(RewriteCond
とRewriteRule
)を宣言する必要があります。 きちんとした部分は、これはLinux、Apache、mod_rewriteでも動作し、このソリューションをクロスプラットフォームにする必要があります!
htaccessの例
あなたの.htaccess
ファイルに、次の書き換え設定を追加します:
Code language: Apache (apache)
.htaccessルール説明:
最初のコードブロックは、URLがファイルまたはフォルダであるかどうかを確認するために二つのRewriteCond
チェックを使用します。 これは、可能なすべてのファイルタイプに対して例外を作成するよりも、より完全で明確で高速です。 RewriteRule
は、ほとんどファイル拡張子を含まないURLを、その名前のPHPファイルに書き換えます。
パターン^(+)(?:/(.+))?$
は以下のように説明されています:
- これにより、ルールがURL
- の一部だけに一致することがありません。
(+)
グループはPHPファイルの名前をと一致させます。 そして、スラッシュまでのすべての文字、または文字列
- の終わりを見つけます。
(?:/(+).)?
はスラッシュを見つけようとし、その後に他の文字が続き、次のように保
置換.php?(?2p=)
は条件付き参照を使用します:
- クエリ文字列は、
が存在する場合、
p=
で埋められます。
最後に、を非表示にするルールが追加されます。phpの拡張機能。
これにより、検索エンジンが重複したコンテンツを見つけることができなくなり、検索結果におけるサイトの位置がペナルティを受けることが
他にも方法があります。
削除します。php拡張機能付き。url
からhtaccessを削除します。とのURLからphpの拡張子.htaccessは、以下を新規に保存することができます。htaccessファイル:
Code language: Apache (apache)
Code language: Apache (apache)
またはMultiViewsを使用します:
Code language: Apache (apache)
これにより、Urlをよりユーザーにする拡張機能が削除され、SEO検索エンジンがフレンドリーになります。 最適なものを使用し、htmlヘッドに正規のメタタグを追加して、重複したコンテンツを回避します(必要に応じて)。
こんにちはにでる時があります。 私はハッカー、コーダー、開発者や教祖ではありません。 私は単にシステム管理者であり、Vevida(Yourhostingの一部)/CLDINで毎日のことをしています。
あなたは、より多くの広告やトラッキングフリーのウェブサイトの経験をしたい場合は、小さな寄付でBackMeしてください(backme.org)またはPaypal。