2

私はアプリケーションのようなMVCを構築しようとしていますが、必要な正しい.htaccessを理解できません。

私は次のようなものが欲しいです:

RewriteRule ^(.*)/(.*)/(.*)$ $1.php?action=$2&n=$3 [L]

したがって、適切なコントローラーと2つのget変数を含むファイルにURLからアクセスできます。上記のコードは機能しません、私はこれを2日間行っていますが、どこにでも必要なものを見つけることができません.3つの変数が機能するためにURLに必要であり、それは私が望むものではありません。推測?

4

2 に答える 2

3

ほとんどのフレームワークは、の代わりにフロントコントローラーmod_rewriteを使用します。このコントローラーはURLを分割し、それに応じてルーティングします。

唯一の解決策ではありませんが、これはより柔軟です。plugin/controller/view/idURLまたはを持っている場合を考慮してくださいcontroller/view/param1/param2

フロントコントローラーアーキテクチャを採用したい場合は、 htaccessファイルのトリムFallbackResourceを維持するために使用することをお勧めします。

FallbackResource /front-controller.php

そこから、のような関数でURLを分割するのはかなり簡単なはずparse_url()です。

于 2012-07-17T23:25:19.837 に答える
2

これを使って:

RewriteRule ^([^\./]*)$ index.php?route=$1 [L,NC,QSA]

それから

$route = explode('/', $_GET['route']);
$id = array_pop();
$controller = array_shift($route);
$method = implode('_', $route);

$controller = new $controller;
$controller->$method();
于 2012-07-18T00:40:08.000 に答える