0

頭に浮かんだ質問の答えを見つけようとしましたが、見つからないようです。

「?」を使用していくつかのphpURLを作成するにはどうすればよいですか。および"="to /

例1:

example.com/user.php?profile=example

に:

example.com/user/profile/example

例2(2):

example.com/forum.php?thread=example-in-an-example

に:

example.com/forum/thread/example-in-an-example

2番目の「/」(スラッシュ)を「?」として取るコードのように 3番目と残りは「=」として表示されるので、ページごとに新しいものを作成する代わりに、自由に使用できます。

LIKE:/ forum(またはその他)はページ自体に似ていますAND:/ thread(またはその他)は$ _GETに似ていますAND:/ example-in-an-example(またはその他)は$の値に似ています_得る

追加:ここにJeroenからのコードがあります:

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

問題1:「example.com/forum」または「example.com/user」が好きになると404エラーが発生する問題2:「example.com/forum/thread/」のようなリンクを使用する場合test-thread / reply / 2 "404エラーが発生します(最初の実数を作成した後、"&"と" = "でループして、複数の$ _GETを使用できるようにします)

4

2 に答える 2

4

これを.htaccessファイルに追加します。

RewriteEngine On
RewriteRule ^user/profile/(.*)/$ user.php?profile=$1 [L]
RewriteRule ^forum/thread/(.*)/$ /forum.php?thread=$1 [L]

または、より一般的なバージョン...

RewriteEngine On
RewriteRule ^(.*)/(.*)/(.*)/$ $1.php?$2=$3 [L]

Apacheのmod書き換えが有効になっていることを確認してください。

于 2012-05-26T22:23:41.450 に答える
1

アプリケーションへの完全なアクセス権があり、コードを変更できる場合は、REST ユーティリティで通常使用するトリックを提出できます。

AllowOverride Allを apache 構成内に配置して、.htaccess ファイルを有効にします。mod_rewriteモジュールも必ずLoadModuleしてください。

Web サーバーのドキュメント ルート (アプリケーション パス) に .htaccess ファイルを作成し、次のものを入れます。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

index.php というファイルを作成し、これを中に入れます。これがコントローラーになります。

<?
        // echo "REQUEST_URI: " . $_SERVER['REQUEST_URI'] . "</br>\n";
        $controller = explode("/", $_SERVER['REQUEST_URI']);
        //print_r($controller);

        $resource = $controller[1];
        $operation = $controller[2];
        $operation_value = $controller[3];

        echo "Requested resource: $resource, opetation: $operation, value: $operation_value<br>\n";

        switch($resource) {
        case 'user':
                echo "User requested\n";
                //require_once("user.php");
                break;
        case 'forum':
                echo "Forum requested\n";
                //require_once("forum.php");
                break;
        /* add any other resource */
        default:
                echo "Requested page was not found.\n";
                break;
        }
?>

ユーザーがhttp://example.com/user/profile/ZeroXitreoを呼び出すと、ページは次のようにレンダラーになります。

Requested resource: user, opetation: profile, value: ZeroXitreo
User requested 

ユーザーがhttp://example.com/forum/thread/example-in-an-exampleを呼び出すと、ページは次のようになります。

Requested resource: forum, opetation: thread, value: example-in-an-example
Forum requested 

コントローラーの PHP コードを読んでください。

于 2012-05-26T23:07:34.283 に答える