2009-06-10 5 views
2

は、私はPHPのウェブサイトを開発していて、現在、私のリンクは、ログインfacebookっぽいスタイルであります(ここではstackoverflowの時のような)エンジン 、のようなもの:使用SEOフレンドリーリンク

me.com/john-adams

しかし、どのように私は、同じ名前を持つ2人のユーザーと区別することができます - より正確か、どのようにstackoverflowの2つの質問から違いを教えてくれありません同じタイトルですか? 私は何かを考えていた

me.com/john-adams-123 

そしてURLを解析していました。

その他の推奨事項はありますか?スタックオーバーフローの場合

+0

http://stackoverflow.com/questions/975240/I-love-badgers に対処することができます。また、この質問に行きます - 数字はテーブルのID、最後のビットはSEOのためのものであり、かなり見ています。 –

答えて

7

オプションと似ていますが、me.com/123/john-adamsと似ていますが、実際にはjohn-adamsの部分にはプログラム的な意味がありません。セマンティック・コンテンツ・フリーの数値IDがURLの右側にあるため、提案方法はやや優れています。

ユーザーテーブルにユニークなスラッグ(これらのSEOフレンドリーなURLコンポーネントは一般的にスラッグと呼ばれます)を保存し、必要に応じて番号を付けて固有のものを取得します。

+0

実際には、むしろ長い文字列(varchar)の値と比較して、短い整数値のインデックス付き列を使用すると、データベースのパフォーマンスが向上するため、数値IDを使用する方がよいでしょう。 – zappan

5

は、それが

http://stackoverflow.com/questions/975240/using-seo-friendly-links 

http://stackoverflow.com/questions <- Constant prefix 
/975240       <- Unique question id 
using-seo-friendly-links   <- Any text at all, defaults to title of question. 

Facebookの、一方で、ちょうど誰もが固有のIDを選択することに決めました。次に、それらをプロファイルページとして使用します。 http://facebook.com/p/username/のようなものです。ユーザーは、既存のすべてのユーザーの中で一意ないくつかの文字列を指定するだけで、ユーザー間の一意性の問題を解決しています。

3

SO 'cheats' :-)

質問のリンクは「Using SEO-friendly links」ですが、「Using SEO-friendly links」も動作します。

数字の後の部分は、SEOにやさしいビットですが、SOは本当に何があるか気にしません。私はそれが質問のタイトルにデフォルト設定されていると思う。

だからあなたの場合には、あなたは次のようにリンクを構築することができます:第二ジョン・アダムズのような異なるIDと固有URLだろう

me.com/123/john-adams 

me.com/111/john-adams 
0

を、私はあなたと一緒に行きたいですme.com/john-adams-123というスタイルです。なぜなら、URIの左端部分はSEOランキングでより重要と考えるからです。実際

、あなたは(だけでなく、ユーザープロファイル)、あなたは、me.com/john-adams-articles-123まだprofile.php?uid=$1から/.+-profile-(\d+)と言って、使用することができるようにリダイレクトする書き換えルールによりme.com/john-adams-profile-123ようにそれをやってみたいことがあり、いくつかのコントローラにこれを使用して喜んでいる場合このユーザーの記事のために...ユーザ名は、単に無意味である前に、ユニークIDの

me.com/john-adams-123 

使用法:

2

は、私はそれがコンテンツの階層を維持するよう、あなたの提案したソリューションは、stackoverflowsとよりよい解決策であると言うでしょう。

私は、しかし、コンテンツタイプの施行をお勧めします:コンテンツタイプの様々なサービスを提供しながら、

me.com/john-adams-123.html 

これは、一貫性のあるURLに対して許可します。

また、あなたはさらに、特にハイエンドの番号については、お使いのURLに不要な嫌なものの量を減らすために、一意のIDのためにsexatrigesimalを利用することができますが、これは多くの場合、やり過ぎです:D

me.com/john-adams-123.html -> me.com/john-adams-3F.html 
me.com/john-adams-1234567890.html -> me.com/john-adams-KF12OI.html 

最後に、適合しないアクセス可能なURIに301のリダイレクトを使用して、「正しい」親しみやすいスキーマにリダイレクトして、重複するコンテンツのペナルティを防ぐようにしてください。

+1

私は今日何かを学んだ - sexatrigesimal。ありがとう:) –

0

リンクに特殊文字が含まれないようにするには、このプラグインをZend Frameworkに使用します。

https://github.com/btlagutoli/CharConvert

$filter2 = new Zag_Filter_CharConvert(array(
       'onlyAlnum' => true, 
       'replaceWhiteSpace' => '-' 
      )); 
echo $filter2->filter('éééé ááááá ? 90 :');//eeee-aaaaa-90 

これは、あなたが他の言語の文字列

関連する問題