-1

phpFacebookのURLのようなプロフィールページをすべてのメンバーに作成する必要がある会社のWebサイトを作成しています

www.mywebsite.com/my.name

このようではありません:

www.mywebsite.com/?profile_id=65497

何か案は ??

4

1 に答える 1

1

これは、id を名前にマップするソースがある場合にのみ実行できることを認識していると思います。mod_rewriteルックアップ テーブルで文字列を検索し、その結果を置換で使用できます。

たとえば、名前から ID へのマッピングを含むファイルがあるとします。

# Mapping of names to UserIDs
Bill.Gates    100
Barack.Obamaq 101
Arsan.Gamal   102 

次に、次を apache config に追加できます。

RewriteEngine On
RewriteMap UserIDs   txt:/path/to/userids.txt
RewriteRule /(.*)   /?profile_id=${UserIDs:$1|NOTFOUND}   [PT]

/Bill.Gates に対するリクエストが来ると、/ の後の部分が正規表現の逆参照でキャプチャされ、userids.txt の値を検索するために使用されます。この値は、置換で使用されます。

他の可能性もあります。ユーザー名と ID がデータベースに存在する場合、RewriteMap でデータベース クエリを使用できます。RewriteMaps でできることとその方法の詳細については、次のマニュアルを参照してください: http://httpd.apache.org/docs/2.4/rewrite/rewritemap.html

于 2013-03-08T13:07:08.327 に答える