2011-02-03 7 views
2

私は最近、私のサイト上で虚栄心のURLを作成する方法について質問を投稿し、私は多くの偉大な答えを持っている間、私は私のオリジナルのアイデアと間違っていたかを見るために好奇心:ここ提案されているこのバニティURL向けルータの問題点は何ですか?

問題がある: 私は現在、醜いURLを持っていますそれは次のようになります。 http://www.hikingsanfrancisco.com/alex-genadinik

私の提案された解決策とは何か: は、私はMVCコントローラの代わりに、(データベースに「アレックス・genadinik」を保存できます私がしたいことは、このようなエレガントな何かがある http://www.hikingsanfrancisco.com/hiker_community/hiker_public_profile.php?community_member_id=2

)とtをフェッチする彼は虚栄心のURLを見て人を見てください。そして、エレガントなドメインにリダイレクトすることができましたか?

また、リダイレクトによって技術的に不自由さと柔軟性のレベルが追加されますか?たぶん私はリダイレクトする必要はないでしょう。私は、サーバーの代わりにデータベース内のものを探していることを意味します。私はそれが唯一の違いだと思う。思考? :)

答えて

1

提案されたソリューションに問題はありません。実際にはWordPressはこれを正確に行うように設定することができます。次のように

私は(ワードプレスと同様に)それを実装します:

  1. は が要求されているすべての 非existantファイル.htaccessファイルのキャッチを持って、そしてあなたの router.php
  2. に書き換えますあなたのrouter.phpに の存在しないパスを、事前に計算されたバニティ名のリストと照合して確認してください。
  3. ファイルが存在する場合は の関連情報を表示し、そうでない場合は 404個のヘッダーのセットを返し、ファイルまたは仮想名が存在しないことを示します。

URL Rewriting Guide

+0

あなたも、 '/ユーザー/アレックス・genadinik'のようなあなたのキャッチURLを作ることによって(ルックアップするためにどのような動作するようにして簡単に)それはもう少しフレンドリーにして、'かもしれませんuser_router.php'はこれらの要求を処理し、正しく表示する方法を知っています。 '/ events/summer-trek-2011'のようなバニティ名を扱う' events_router.php' – Leigh

1

Drupalは実際に何か似ていますが、すべてのURLエイリアスはデータベースに格納されています。しかし、あなたはそれを行うことができます!私は、あなたがURLを持っている "物"の種類とそれらを区別する方法、ユーザーがURLを要求したときのルックアップのやり方、エンティティからのリンクを生成するための逆ルックアップのやり方、パラメータを扱う方法(つまり、/ vanity-url?sortby = blah)が必要な場合はどうすればよいでしょうか。

関連する問題