2016-10-05 7 views
1

MVCでの読解から、クライアント側のスクリプトからRequestを使用してメインルータに集中したいと考えています。Mvc Routing - Friendly URL

研究から、URLは次のようになり:

http://www.example.com/controller/action/params 

StackOverflows、それはより多くの本のように見える他の同様のフレームワークを見ているときしかし、:

http://stackoverflow.com/users/1365260/example 

誰かが何が起こっているのか説明していただけますこれは違うのですか? 1365260はユーザーIDのように見えます&例は彼のユーザー名ですので、これらはparamsでなければならず、ユーザーは明らかにコントローラーです。

実行するアクションをこのフレームワークがどのように知っていますか?すなわち:検索、表示、更新

+0

URL、ルーティング/ディスパッチ要求、および偽の "MVC"はすべて直交しています。あなたは他の人がいなくてもかまいません。単純なモジュール→関数→argsのパス構造はどこにも適用されません。 – mario

+0

補足として、ディレクトリ/ id/usernameを作成する必要がありますか、または.htaccessが使用されていますか?あなたは404が見つかりませんし、これらのディレクトリをすべて作成するとサーバーのメモを使い果たしてしまうので、ベストプラクティスは何ですか? @mario – KDOT

+0

特に、Stack OverflowはApacheを使用していません。しかし、はい、RewriteRuleはディレクトリが存在しなくても仮想パス構造をマップすることができます。 .htaccessルールセットは一般的にテストのためだけに使用されることに注意してください。かなりのURLのための他のオプションがしばしばあります。 – mario

答えて

4

これは実際に

/controller/action/params 

あなたがルートとして何かを定義することができません。あなたはURIを訪問するたびに、デフォルトでは、フレームワークは、それがルートリストにあなたのURIをチェックするインデックスページにあなたの要求をリダイレクトするperspectives- laravel枠組みから

http://www.example.com/this/is/a/route 

。各ルートは、あなたの要求を処理するcontrollersメソッドにバインドされています。このメソッドは、検索、表示、作成、更新、削除などの操作を行うことができます。

このルーティングシステムでは、パラメータを渡すこともできます。あなたの例ではここで は

http://stackoverflow.com/users/1365260/example 

このルートは、ルートリストに定義され、この方法は、それとユーザID、これらはパラメータであり、ユーザー名とバインドされています。このルートにアクセスすると、メソッドが実行され、ルートIDから取得したユーザーIDとユーザー名のプロファイルが表示されます。

これが役に立ちます。

+0

最初のリダイレクトは混乱する部分ですが、どのようにファイルをリダイレクトできますか?同じURI状態を維持できますか?ディレクトリ/ uniqueId/usernameが存在せず、htaccessでマップされていない限り、これは可能でしょうか? – KDOT

+0

はい、htaccessにマップされています。すべてのリクエストを1つのファイルにリダイレクトします。 –

+0

URIの状態はどのように変わらないのですか? ReWriteは必ずURIを/ id/username - > index +1のようにマップされたパスに変更してください。 – KDOT