URL 書き換えステップバイステップ...
ステップ 1 - クライアント側 URL の外観を決定する
あなたはこの部分を完了しました - あなたはexample.com/peter
あなたのユーザーが見ているものになりたいです
ステップ 2 - サーバー側の URL を考え出す
技術的には、ハードコードされた書き換えルールの膨大なリストを作成できます。
RewriteRule ^peter$ mypage.php?id=324
RewriteRule ^alice$ mypage.php?id=325
RewriteRule ^bob$ mypage.php?id=326
しかし、多くのユーザーがいる場合、これは特に効率的ではありません。
mypage.php は ID を受け入れますが、可能なユーザー名を受け入れることができるように変更する必要があります (ただし、あらゆる種類のゴミが含まれていると仮定します)。別のクエリ文字列引数 'hint' を取ることを許可することにしたとしましょう。したがって、次のような URL を取得する必要があります。example.com/mypage.php?hint=peter
スクリプトが理解できないユーザー名に対して 404 応答を生成することを確認してください。
ステップ 3 - クライアント側の URL をサーバー側の URL にマップするための製品書き換えルール
これを行う 1 つの方法は次のようになります。最初のRewriteCond行により、要求が実際のファイルと一致しない場合にのみルールが実行されるようになります。RewriteRuleにより、リクエストは mypage.php によって処理されますが、残りの URL は「ヒント」パラメーターとして渡されます。「qsa」の部分は「query string append」の略で、元の URL に存在するすべてのクエリ文字列が記述されたルールに追加されることを意味します。「l」は「最後」を意味するため、このリクエストを処理するためにそれ以上のルールは呼び出されません。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]+)$ mypage.php?hint=$1 [qsa, l]
mypage.php では、ヒントを使用してユーザーを検索します。
パターンをかなり制限していることに注意してください。小文字のシーケンスのみが許可されています。これにより、サイトが生成する 404 ごとにスクリプトが呼び出されないようにすることができます。