0

重複の可能性:
クエリ文字列と Mod ReWrite

次の行を正しく変換する .htaccess ファイルを作成しました。

http://localhost/questions/32/new-question-from-peter

の中へ

http://localhost/questions.php?question_id=32.



私が使用するコードは

RewriteRule ^questions/([0-9]+)/[^/]*(?:\?(.+)=(.*))?$ public/questions.php?question_id=$1&$2=$3 [NC,L]


ただし、URLが以下の場合、

http://localhost/questions/32/new-question-from-peter?page= <int>

私のURLが

http://localhost/questions.php?question_id=32&page=2

それは完全に機能します。

誰かがこれを手伝ってくれますか、私のコードのどこが間違っていますか

4

2 に答える 2

1

mod_rewrite をデバッグする一般的な良い方法は、ログファイルを設定し、書き換え中に何が起こっているかを確認することです。

<IfModule mod_rewrite.c>
RewriteLog "/var/log/rewrite.log"
RewriteLogLevel 3
</IfModule>
于 2012-06-10T17:58:16.457 に答える
1

QSA次のように(Query String Append) フラグを使用する必要があります。

RewriteRule ^questions/([0-9]+)/[^/]*/?$ public/questions.php?question_id=$1 [NC,L,QSA]

この場合、クエリ文字列 ( &page=2) は自動的に処理されるため、正規表現で処理する必要はなく、書き換えられた URL の末尾に追加されます。

于 2012-06-10T17:59:49.687 に答える