-1

重複の可能性:
方法: PHP での URL の書き換え?
任意の数のパス セグメントをクエリ パラメータに書き換える

現在、私の Web サイト ( source world games ) では、 $_GET メソッドを使用してレビュー/ニュース記事を表示しています。たとえば、「sourceworldgaming.com/reviews.php?id=40」は、データベースにレビュー #40 を表示します。

IGNはこれを行いません。たとえば、http: //www.ign.com/games/guild-wars-2/pc-896298 を使用し、$_GET[] は不要です。これはどのように行われますか?個々のゲームごとにインデックスを作成しますか?

URLをsourceworldgaming.com/reviews.php/40にできるようにしたい

また、これを行うと、サイトがより検索エンジンに適したものになりますか? ありがとう。

4

2 に答える 2

2

これは、スクリプトの mod_rewrite とルーターの部分で行われます。

URL:http://www.example.com/games/guild-wars-2/pc-896298

実際には次のようにスクリプトに渡されます。

http://www.example.com/?route=/games/guild-wars-2/pc-896298

mod_rewrite を使用する (例)

RewriteEngine On
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

次に、基本的に/games/guild-wars-2/pc-896298はを使用して断片に分割されます

$route = explode('/',$_GET['route'])

$route[0]コントローラまたはカテゴリのクエリも同様です 。ゲームカテゴリなどである$route[1]ため、アクションまたはゲームのクエリになります$route[0]

于 2012-08-18T00:54:08.043 に答える
0

/foo.phpサーバー上で名前が付けられたファイルへの移動を要求するという事実foo.phpは、実装の詳細にすぎません。これを必要とする Web については何もありません。これは、PHP を含む多くのシステムで行われていることです。他の多くのシステムでは、ルーティング テーブルやオブジェクト トラバーサルなど、さまざまな規則が使用されています。

ファイル システムを使用してリクエストをルーティングする Web サイトを既に構築している場合、別の URL を取得する最も簡単な方法は、使用している Web サーバー ソフトウェアで mod_rewrite または同等のものを使用することです。

于 2012-08-18T00:59:02.390 に答える