0

タイトルを作るのに本当に苦労しました。ですから、もっと良いものがあれば編集してください。

今質問に:

.htaccessファイルのmod_rewriteでいくつかのURLを書き直そうとしています。

だから、私がやろうとしているのは、同じクエリを2つ作成することですが、これはもちろん機能しません。ルールの1つのみ。それで、最初のルールが失敗した場合に次のルールに進むことを伝える方法があるかどうかを考えていました。または-ルールが失敗した場合、別のルールを探し続けますか?

これらは私のルールであり、最後のパラメーターを除いて同じです。

RewriteRule ^udforsk/([a-z-]+)/([0-9]+)$ index.php?page=udforsk&q=1&s=$1&val=$2
RewriteRule ^udforsk/([a-z-]+)/([0-9]+)$ index.php?page=udforsk&q=1&s=$1&p=$2
4

2 に答える 2

1

私が間違っている場合は訂正してください。ただし、GETを介して引数を渡す場合は、インデックス.phpがGET変数がない場合に発生するエラーを処理する必要があります。

index.phpで、実際に扱う$_GET["p"]のと同じように扱い、等しい値を使用して設定します(まだ設定されていない場合)$_GET["val"]isset()pvalp

于 2012-08-19T15:03:44.567 に答える
0

リライトは、ルールで呼び出しているページが実際に有効かどうかを確認しません。それはただそれを提供しようとします、そしてあなたが[L]を持っていないので、それは次のものも提供しようとします。

おそらくあなたがすべきことは、最初のURLを変更して、その$2の値を2つの異なるパラメーターとして渡すことです。

RewriteRule ^udforsk/([a-z-]+)/([0-9]+)$ index.php?page=udforsk&q=1&s=$1&val=$2
RewriteRule ^udforsk/([a-z-]+)/([0-9]+)$ index.php?page=udforsk&q=1&s=$1&p=$2

する必要があります

RewriteRule ^udforsk/([a-z-]+)/([0-9]+)$ index.php?page=udforsk&q=1&s=$1&val=$2&p=$2

次に、phpスクリプトのロジックに基づいて、index.phpに「val」または「p」を使用するパラメーターを選択する作業を実行させます。

確かに、PHPコードでは、「isset」を使用して変数をテストします。

$value = (isset($_REQUEST["val"]) ? $_REQUEST["val"] : (isset($_REQUEST["p"]) ? $_REQUEST["p"] : "error"));

$ valueは、「val」または「p」の内容、または他のいずれも設定されていない場合は「error」という単語を保持します。

于 2012-08-19T15:19:00.113 に答える