Web アプリケーションでは、書き換えエンジンはURL (Uniform Resource Locators)の書き換えを実行して外観を変更するソフトウェア コンポーネントです。この変更はURL 書き換えと呼ばれます。これは、Web アプリケーション内でURL マッピングまたはルーティングを実装する方法です。エンジンは通常、 Web サーバーまたはWeb アプリケーション フレームワークのコンポーネントです。書き換えられた URL (短いURL 、きれいなURL 、派手な URL、検索エンジン フレンドリー ( SEF ) URL、またはスラッグと呼ばれることもあります) は、Web ページへのより短く関連性のあるリンクを提供するために使用されます。この手法により、Web ページの生成に使用されるファイルと外部に提示される URL の間に 抽象化レイヤーが追加されます。
使用法
動的コンテンツを含む Web サイトでは、クエリ文字列パラメータを使用してサーバーからページを生成する URL を使用できます。これらは、サブディレクトリ階層を持つサイト上の静的ページの URL に似たものに書き換えられることがよくあります。たとえば、タイトルがRewrite_engineのwikiページの URL は次のようになります。
http://example.com/w/index.php?title=Rewrite_engine
次のように書き直すこともできます。
http://example.com/wiki/Rewrite_engine
ブログには、各エントリの日付をエンコードした URL が含まれる場合があります。
http://www.example.com/Blog/Posts.php? Year=2006&Month=12&Day=19
次のように変更できます。
http://www.example.com/ブログ/2006/12/19/
これにより、ユーザーは、ディレクトリを「上」に移動するのと同じように、日付「19」をエンコードするテキストを削除するだけで、12 月に利用可能なすべての投稿を表示するように URL を変更することもできます。
http://www.example.com/ブログ/2006/12/
サイトは、URL 内の専門用語を検索語として検索エンジンに渡すことができます。これにより、ユーザーはブラウザから直接検索できるようになります。たとえば、ブラウザのアドレス バーに入力された URL は次のようになります。
http://example.com/検索語
HTTP リクエストを行う前にブラウザによってURL エンコードされます。サーバーはこれを次のように書き換えることができます。
http://example.com/search.php?q=search%20term
利点と欠点
URL書き換えにはいくつかの利点がある: [1]
- リンクは「より明確」かつより説明的になり、ユーザーと検索エンジンの両方にとって「親しみやすさ」が向上します。
- 帯域幅を浪費する可能性のある、望ましくない「インライン リンク」を防止します。
- サイトは、URL を提供するために使用される基盤となるテクノロジーが変更された場合でも (たとえば、新しいブログ エンジンに切り替えるなど)、同じ URL を引き続き使用できます。
ただし、欠点もあります。ユーザーが URL を変更して新しいデータを取得したい場合、名前付き変数がないため、 URL 書き換えによってカスタム クエリの構築が妨げられる可能性があります。たとえば、次の形式から日付を判別することが難しい場合があります。
http://www.example.com/ブログ/06/04/02/
この場合、クエリ変数が月と日を示しているため、元のクエリ文字列の方が便利でした。
http://www.example.com/Blog/Posts.php? Year=06&Month=04&Day=02
ウェブフレームワーク
多くの Web フレームワークには、直接または拡張モジュールを通じて URL 書き換えが含まれています。
- Apache HTTP Serverにはmod_rewriteモジュールによって提供されるURL書き換え機能があります。[2]
- URL RewriteはMicrosoft IISの拡張機能として利用可能です。[3]
- Ruby on RailsにはRoutesを介したURL書き換え機能が組み込まれています。[4]
- Jakarta Servlet には、 OCPsoft URLRewriteFilter と Tuckey UrlRewriteFilter を介して拡張可能な URL 書き換え機能があります。
- Jakarta Faces はPrettyFaces: URLRewriteFilter を介して URL 書き換えを簡素化しました。
- Django は正規表現ベースのシステムを使用します。これは厳密には URL 書き換えではありません。書き換えるスクリプトもディレクトリ構造もありませんが、URL 書き換えの柔軟性を完全に提供します。[5]
- Java Stripes Frameworkはバージョン1.5以降統合機能を備えています。[6]
- MojoliciousやCatalystなどの多くのPerlフレームワークにはこの機能があります。[7]
- CodeIgniter には URL 書き換え機能が提供されています。
- lighttpdにはmod_rewriteモジュールがある。[8]
- nginxには書き換えモジュールがあります。[9] [10]たとえば、 .mw-parser-output .monospaced{font-family:monospace,monospace}/f101,n61,o56,d/ifconfigのようなURIからマルチリンクマルチ変数ページを生成することが可能です。ここで、 f101のような複数の個別の部分は、正規表現の助けを借りて、FreeBSD 10.1-RELEASEなどを示す変数に展開されます。
- Hiawatha HTTPサーバーにはURL書き換えをサポートするURLツールキットが搭載されています。[11]
- Cherokee HTTP サーバーは、 URL 書き換えとリダイレクトの正規表現をサポートしています。
ソフトウェア開発の観点から見ると、URL書き換えはコードのモジュール化と制御フローの促進に役立ち、[12] 現代のウェブフレームワークの便利な機能となっています。
参照
- アプリケーション配信コントローラ
- aiScaler トラフィックマネージャー
- .htaccess
- Apache HTTP サーバー
- コンテンツ交渉
- ウェブ
- インターネット インフォメーション サーバー
- パーマリンク
- Zeus ウェブサーバー
注記
- ^これらの多くは、URL を ファイルシステムのエンティティ (つまり、ファイルとディレクトリ) にマップするデフォルトの動作を持つ HTTP サーバーにのみ適用されます。多くの HTTPアプリケーション サーバープラットフォームなどの特定の環境では、これは無関係になります。
- ^ mod_rewrite ドキュメント
- ^ Microsoft IIS の URL 書き換え拡張機能
- ^ 「Rails Routing from the Outside In」。「Ruby on Rails」。2014 年4 月 25 日閲覧。
- ^ Django URLconf
- ^ Stripes 1.5 のクリーン URL
- ^ ガイド - Mojolicious 銀河ガイド。Mojolicious。2013 年 9 月 8 日に取得。
- ^ Docs ModRewrite - Lighttpd - lighty labs. Redmine.lighttpd.net. 2013 年 9 月 8 日に取得。
- ^ "ngx_http_rewrite_module - rewrite". nginx.org . 2014年12月25日閲覧。
- ^ Murenin, Constantine A. (2013 年 2 月 18 日). 「nginx.conf だけで記述された動的な Web サイト? mdoc.su のご紹介!」. nginx@nginx.org (メーリング リスト) . 2014 年12 月 24 日閲覧。
- ^ URL TOOLKIT Hiawatha ウェブサーバのマニュアルの一部
- ^ 「クリーンな URL」。DocForge。2014年4 月 25 日閲覧。
外部リンク
- Apache mod_rewrite
