2

mod_rewrite を使用して .html を .php に書き換えています。

RewriteRule ^([0-9a-zA-Z-_]+)\.html$ index.php?p=$1 [L]

しかし、URL で $_GET を使用すると問題が発生します。要求された URL が次の形式の場合、正常に機能します。index.php?a=f1

しかし、それを に書き換えると、何もありませんhome.html?a=f1

ブラウザーが .html にヒットした後に読み取りを停止しただけだと仮定します。これを機能させる方法はありますか?

4

2 に答える 2

11

QSA次のフラグを追加する必要があります。

RewriteRule ^([0-9a-zA-Z-_]+)\.html$ index.php?p=$1 [QSA,L]

理由は、ドキュメントで最もよく説明されています。

置換 URI にクエリ文字列が含まれている場合、RewriteRule の既定の動作では、既存のクエリ文字列が破棄され、新しく生成されたクエリ文字列に置き換えられます。[QSA] フラグを使用すると、クエリ文字列が結合されます。

于 2012-06-27T20:18:20.410 に答える
0

あなたは電話しなければなりませんhome.htm&a=f1

非表示の URL は次のとおりです。index.php?p=home&a=f1

于 2012-06-27T20:16:57.507 に答える