貧乏人のクリーンURL対Mod_Rewrite


8

私が働いている会社では、新しいWebサイトを設計する準備をしていますが、クリーンなURLを作成する方法については意見の相違があります。過去1年間、Poor Man's Clean URLs™を伴う大規模な再設計を見越して、既存のWebサイトに小さな改善を加えてきました。

例:
http://www.example.com/products/widgets/index.php

http://www.example.com/products/sprockets/index.php

新しいサイトでは、mod_rewriteの使用についていくつかの話があります。

  1. ユーザーのリクエスト http://www.example.com/products/widgets/
  2. mod_rewriteはそれらを http://www.example.com/index.php?page=products/widgets
  3. index.phpはそれらを実際のページに送信します http://www.example.com/products/widgets.php

このリガマロールがどのようにして付加価値を生み出しているかを理解できていません。mod_rewriteを支持する従業員は、ディレクトリの数が少なければ、なんとかしてメンテナンスが容易になると主張しています。

既存のページでは、クエリ文字列の変数を使用していません。すべてのコンテンツは実際のファイル自体にあります。プレスリリースや今後の展示会など、データベースにコンテンツを追加する予定ですが、ページの大部分は、ヘッダー、フッター、ナビゲーションなどの一般的なHTMLを含めるためにPHPのみを使用します。そのような動的コンテンツにmod_rewriteを使用することは間違いなくできます。

すべてにmod_rewriteを使用する必要があるという、私が見逃しているいくつかの大きな利点はありますか?Poor Man's Clean URLs™は、サイトのデータベース以外の部分に十分ですか?


私は...クリーンURLのために...ので、あまりにも多くの手間をtougt

回答:


3

上記で概説した3ステップのプロセスは、上記のように冗長で役に立たないようです。手順3でindex.phpが「実際の」ページに移動する場合は、なぜmod_rewriteを使用する必要がないのでしょうか。これを行うと、mod_rewriteが提供する利点が無効になります。つまり、検索エンジンにわかりやすいURLと、サイトのメンテナンスが容易になります。ステップ2で停止すると、維持するページが1つしかないためmod_rewriteのメリットが得られますが、ページ数は事実上無制限であり、ステップ1のURLしか表示されないため、ユーザーや検索エンジンに対して透過的です。


4

「/ pagename」または「/pagename.htm」は「/pagename.php」よりも検索エンジンに適しているというのは神話です。少なくともグーグルでは、これの根拠は絶対にありません(そして私は他のものも想定しています)。同様に、 "index.php?page = pagename"でも "/ pagename"に書き換える必要はありません-検索エンジンはこれらのURLを問題なく理解でき、Googleはユーザーが書き換えないことを好むという記録にも踏み込んでいますそれらを不必要に(http://googlewebmastercentral.blogspot.com/2008/09/dynamic-urls-vs-static-urls.html)。したがって、URLパラメータを使用して無限のURLを作成しない場合、書き換えられたURLは書き換えられていないURLよりも検索エンジンにとって使いやすいとは限りません

とは言え、ユーザーは醜い/複雑なURLよりも素敵なURLを好むかもしれません。検索結果に素敵なURLが含まれることが主な心配である場合は、Googleが現在サポートしているブレッドクラムマイクロフォーマット(http://googlewebmastercentral.blogspot.com/2010/09/rich-snippets-testing-tool- Improvements.html)を使用すると、検索結果のURLに関するユーザーエクスペリエンスが向上します。これは、見栄えの良いURLへのリンクをユーザーが望んでいるという問題を解決しませんが、URLが無限に複雑ではない(そして例がそうではない)場合、それらを書き直しても、測定可能な違いはないでしょう。使用事例。測定可能な違いがない場合、そのようなセットアップの設計と保守に時間を費やすことはおそらく意味がありません。


1

「貧乏人のクリーンURL」とは、ファイルシステムを介して実装されたクリーンURLのことです。mod_rewriteを使用せずに2番目のタイプのURLを作成できるのと同じように、mod_rewriteを使用してこれらのタイプのURLを作成できます。

クリーンURLは、その名前が示すとおり、クリーンまたはクリーンに見えるURLです。どちらも

http://yoursite/foo/bar

そして

http://yoursite/foo/bar.php

クリーンなURLです。「クリーンURL」という用語は、特定の実装を指定するものではありません。必要に応じて、サイトが更新されるたびにキャッシュされた.htmlページを生成することにより、クリーンなURLを実装できます。mod_rewriteを使用すると、リダイレクトやフレームなしで、URL構造をファイル構造から分離できます。

どう思われるかというと、現在データベース主導のサイトを運営しているわけではありません。技術的には動的なWebサイトとしての資格があるかもしれませんが、ヘッダー/フッターを含めるためだけにPHPを使用している場合は、おそらく静的な端にあるでしょう。更新がほとんど必要ない小さなサイトでは問題ありませんが、サイトが大きくなるにつれて、実際のCMSを実装する必要があります。

mod_rewriteが優れているのは、保守性を考慮し始めたときです。(多数の冗長コードを含む)製品ページごとに数百のphpファイルを用意する代わりに、すべてのリクエストを処理する単一のスクリプトを作成できます。しかし、実際の.phpファイルと表示されたWebページとの1対1のマッピングがなくなった場合は、ファイル/ディレクトリ構造の幻想を維持しながら、mod_rewriteなどを使用してページ要求をインテリジェントにルーティングする必要があります。そこ。

したがって、心配する必要のある追加のサブディレクトリではありません。これは、サイトのすべてのページに個別の.phpスクリプトを作成しているという事実です。


1

「クリーンなURL」は、ファイル拡張子がないことを意味します。実装の詳細をビューアから隠すのに役立ちます。その利点は、たとえばPHPからRuby on Railsにサイトを移動する場合、単一のURLを変更せずに移動できることです。

これで、ASP.netでサイトを実行し、URLをそのままにしたい場合は、ファイル名が.phpで終わるようにすることは可能ですが、問題が発生することがないようにそれらを実行する方が理にかなっているようです。

http://www.example.com/news/2010/10/our-new-url-system/

基盤となるアーキテクチャを完全に変更したり、静的ファイルから動的ファイルに変更したり、その逆を行ったりしても、常に良いURLになる可能性があります。


0

すべてのコンテンツをデータベースに保存しておくと、更新が必要になるたびに大規模なファイルシステムを掘り下げて維持する方がはるかに速く簡単になります。John Muellerが前述したように、素敵なURLがランキングに大きな違いをもたらすことはありませんが、既存のURLとその値を維持するためにMod_Rewriteを使用することを検討してください。IEの場合:

example.com/widgets/index.phpにはそれを指す1,000のリンクがあり、それをexample.com/pages/widgets.phpに変更すると、その値の多くを失うリスクがあります(もちろんリダイレクトできますが、同じ値を渡すかどうか)

私の推奨は、静的コンテンツを引き続き提供している場合はファイルシステムを引き続き使用し、動的コンテンツに変換している場合はMod_Rewriteを使用して現在のURL構造を維持することです。または、現在の構造を維持できない場合は、Mod_Rewriteを使用して、将来の更新に備えて安定した構造を作成します。


0

言われたように、持っている.phpかどうか?page=は本当に重要ではありません。何あなたはこのような何かをやっている場合は問題では、次のとおりです。

http://www.example.com/index.php?page=13

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.