2

私よりも経験豊富な人が、リンクがどのように機能するかを説明できますか(たとえば):

http://www.facebook.com/zuck  

これと同じだと思います

http://www.facebook.com/profile.php?id=4

「zuck」はGET型の文字列だと思いますが、どうすれば同じことができるのかわかりません。

どうもありがとうございます

4

3 に答える 3

2

.htaccessファイル:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /profile.php?id=$1 [L]
于 2012-03-03T14:13:00.993 に答える
2

Apacheのmod_rewriteモジュールを使用して簡単に行うことができます。これは、着信要求に提供するコンテンツを指定できるメカニズムです。たとえば、.htaccessファイルで次のようなルールを作成できます。

RewriteRule (.*) index.php?req=$1

次に、すべての着信リクエストを中央のindex.phpにリダイレクトします。ここで、リクエストされたURIを解析でき(この例では、req変数は値 "zuck"を保持します)、その情報に基づいてコンテンツを提供できます(例:ユーザープロファイルを含むデータベースで「zuck」を検索し、「zuck」値に関連付けられたIDを取得して、ユーザー#24のプロファイルを表示することができます。

少なくともそれが基本的な考え方です。これは通常、「URLを美しくする」、「わかりやすいURL」、「SEO URL」と呼ばれ、これらの用語を検索すると、たくさんのリソースが見つかります。

于 2012-03-03T14:13:30.207 に答える
1

実際、私はそれについてよくわかりませんが、私がそれを見ると、Facebookはおそらく両方の方法を使用してプロファイルにアクセスします

.htaccessをすばやく実行して、すべてのリクエストが同じページに届くようにします。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /profile.php?input=$1 [L]

これで、profile.phpで、次のような簡単なチェックを行う必要があります。

$input = $_GET['input'];

if(is_string($input)) {
 // then retrieve profile id, based on the string
}
//now either way you have an unique identifier at last
//
//
// use your logic further more
于 2012-03-03T14:19:51.843 に答える