検索エンジンに優しい URL 設計
著作権に関する声明: 転載する場合は、記事とこの声明の元の出典と著者情報をハイパーリンクの形式で必ず明記してください
http://www.chedong.com/tech/ google_url.html
キーワード: "URL 書き換え" mod_rewrite isapirewrite path_info "検索エンジンに優しい"
コンテンツの概要:
さらに、インターネット上のコンテンツが驚くべき速度で増加するにつれて、Web サイトがユーザーフレンドリー (ユーザーフレンドリー) であることに加えて、検索エンジンによるインデックスの強化を望む場合、検索エンジンの重要性がますます高まっています。ウェブサイトのデザインは検索エンジンに優しいものでなければなりません (検索エンジンに優しい) のデザインも非常に重要です。検索エンジンに入力されるページ コンテンツが多ければ多いほど、さまざまなキーワードを使用しているユーザーが見つけられる可能性が高くなります。 Google のアルゴリズム調査の記事では、サイト上で Google によってインデックスされたページの数が実際に PageRank に一定の影響を与えると述べられています。 Google はネットワーク全体の比較的静的な部分を強調しているため (インデックス付けされる動的 Web ページの数は比較的少ない)、比較的固定リンク アドレスを持つ静的 Web ページは Google によるインデックス付けにより適しています (多くの大規模 Web サイトにメーリング リスト アーカイブがあり、インデックス付けが容易な月次アーカイブ ドキュメント (検索) のため、検索エンジン指向の URL 設計最適化 (URI Pretty) に関する多くの記事で、動的な Web ページのパラメーターを静的な Web のような形式に変換する特定のメカニズムの使用について多くのことが言及されています。ページ:
たとえば、次のように変更できます:
http://www.chedong.com/phpMan.php?mode=man¶meter=ls
は、次のようになります:
http://www.chedong。 com/phpMan.php/man/ls
これを実装するには主に 2 つの方法があります:
URL書き換えに基づく
path_info に基づく
URI アドレスをパラメータとして渡します: URL REWRITE
最も単純なのは、さまざまな WEB サーバーの URL 書き換えモジュールに基づく URL 変換です。
この方法では、news.asp?id=234 のようなリンクは、プログラムをほとんど変更せずに news/234 にマッピングできます。外部からの静的リンクと同じです。 Apache サーバーにはモジュール (非デフォルト) があります: mod_rewrite: URL REWRITE は本を書くのに十分強力です。
news.asp?id=234 を news/234.html にマップする必要がある場合は、次のように設定するだけです:
RewriteRule /news/(d ).html /news.asp?id=$1 [N,I ]
これにより、/news/234.html のようなリクエストが /news.asp?id=234 にマップされます
/news/234.html に対するリクエストがある場合、Web サーバーは実際のリクエストを /news に転送します。 asp?id=234
IIS には、対応する REWRITE モジュールもあります。たとえば、ISAPI REWRITE や IIS REWRITE、構文は正規表現に基づいているため、構成は Apache の mod_rewrite とほぼ同じです。
たとえば、単純なアプリケーションの場合は次のようになります。
RewriteRule /news/(d ).html /news/news.php?id=$1 [N,I]
このように、http://www .chedong.com/news/234.html は http://www.chedong.com/news/news.php?id=234
すべての動的ページをパラメータ マッピングできるより一般的な式です。 :
は http://www.myhost.com/foo.php?a=A&b=B&c=C
を http://www.myhost.com/foo.php/a/A/ b/ として表します。 B/c/C。
RewriteRule (.*?.php)(?[^/]*)?/([^/]*)/([^/]*)(. ?)? $1(?2$2&:?) $3=$4?5$5: [N,I]
URL REWRITE を使用するもう 1 つの利点は、バックグラウンドの実装が隠蔽されることです。これは、バックグラウンド アプリケーション プラットフォームを移行するときに非常に役立ちます。ASP から Java プラットフォームに移行する場合、フロントエンド ユーザーはバックグラウンド アプリケーションの変更を感じることができません。 。
たとえば、アプリケーションを news.asp?id=234 から news.php?query=234 に移行する必要がある場合、フロントエンドのパフォーマンスは常に news/234.html のままにすることができます。アプリケーションとフロントエンドのパフォーマンスの分離の実現により、URL の安定性が維持され、mod_rewrite を使用するとリクエストを他のバックエンド サーバーに転送することもできます。
PATH_INFO に基づく URL の美化
URL を美しくするもう 1 つの方法は、PATH_INFO に基づいています。
PATH_INFO は CGI 1.1 標準です。CGI に続く多くの「/value_1/value_2」が PATH_INFO パラメーターであることがよくあります。
たとえば、http://www. chedong .com/phpMan.php/man/ls, in: $PATH_INFO = "/man/ls"
PATH_INFO は CGI 標準であるため、PHP Servlet などが完全にサポートしています。たとえば、サーブレットには request.getPathInfo() メソッドがあります。
注: /myapp/servlet/Hello/foo の getPathInfo() は /foo を返し、/myapp/dir/hello.jsp/foo の getPathInfo() は /hello.jsp を返すこともできます。 jsp は実際にはサーブレットの PATH_INFO パラメータであることを知ってください。 ASP は PATH_INFO をサポートしません。
PHP での PATH_INFO に基づくパラメータ解析の例は次のとおりです:
//注: パラメータは「/」で分割され、最初のパラメータは空です: from / param1/param2 2 つのパラメータを解析します $param1 $param2
if ( isset($_SERVER["PATH_INFO"]) ) {
list($nothing, $param1, $param2) =explode('/', $_SERVER ["PATH_INFO"]);
}
アプリケーションを非表示にする方法: たとえば、.php、拡張子:
APACHE で次のように設定します:
静的ページに近づける方法: app_name/my/app.html
PATH_INFOパラメータを解析する際、最後のパラメータの最後の5文字「.html」を切り詰めてください。
注: APACHE2 では、PATH_INFO はデフォルトで許可されていません。
に AcceptPathInfo を設定する必要があります。特に、仮想ホストを使用し、mod_rewrite をインストールして構成する権限を持たないユーザーの場合、PATH_INFO が唯一の設定になります。選択。
それでは、今後 http://www.example.com/article/234 のような Web ページを見たときに、それが PHP プログラムのarticle/show によって生成された動的 Web ページである可能性があることがわかるでしょう。 .php?id=234 、多くのサイトには多数の静的ディレクトリがあるように見えますが、実際にはコンテンツを公開するために 1 つまたは 2 つのプログラムを使用している可能性が高くなります。たとえば、多くの WIKIWIKI システムはこのメカニズムを使用しています。システム全体は単純な wiki プログラムであり、一見したディレクトリは、実際には次のアドレスをパラメーターとして使用したこのアプリケーションのクエリ結果です。
MOD_REWRITE/PATH_INFO + CACHE サーバーに基づくソリューションを使用して元のダイナミック パブリッシング システムを変換すると、古いシステムを新しいコンテンツ管理システムにアップグレードするコストも大幅に削減できます。また、検索エンジンのインデックス作成も容易になります。
添付: PHP を使用して IIS で PATH_INFOPHP の ISAPI モード インストールをサポートする方法 注: php-4.2.3-Win32
解凍ディレクトリ
=======
を試してください。 php-4.2.3-Win32.zip c:php
PHP.INI 初期化ファイル
=================
コピー: c: phpphp.ini-dist から c:winntphp.ini
ファイルの関連付けを構成します
============
install.txt の説明に従ってファイルの関連付けを構成します
ランタイム ライブラリ ファイル
==========
c:phpphp4ts.dll を c:winntsystem32php4ts.dll にコピーします
次のように実行すると、php が表示されます。 PATH_INFO を変更します 物理パスにマッピングされました
警告: 不明(C:CheDongDownloadsariadnewwwtest.phppath): ストリームの作成に失敗しました: 行 0 の不明にそのようなファイルまたはディレクトリはありません
警告: 不明(): 開けませんでした'C :CheDongDownloadsariadnewwwtest.phppath' (include_path='.;c:php4pear') 行 0 の Unknown に含めます
ariadne の PATCH をインストールします
============ == ====
IIS サービスを停止します
net stop iisadmin
ftp://ftp.muze.nl/pub/ariadne/win/iis/php-4.2.3/php4isapi.dll
元の c:phpsapiphp4isapi.dll をオーバーライドします
注:
ariadne は PHP 4.3.2 RC2 の CGI モードの
PATH_INFO に基づくコンテンツ パブリッシング システムです。そのままインストールしてください。いつもの。
参考文献:
URL 書き換えドキュメント:
http://www.isapirewrite.com/docs/
http://httpd.apache.org/docs/mod/mod_rewrite.html
http: / /httpd.apache.org/docs-2.0/mod/mod_rewrite.html
検索エンジンに優しい URL 設計
http://www.sitepoint.com/article/485
おそらくこの URL は articel.php?id=485
であることが判明します
PATH_INFO
http://typo3.com/
に基づくオープンソースのコンテンツ管理システム
Google にインデックスされないものは何ですか?
http://www.microdocs-news.info/newsGoogle/2003/05/10.html
Google の PageRank の説明:
http://pr.efactory.de/