0

URLをチェックする書き換えルールが欲しい。条件で開始する必要があり、拡張はありません。

これは私がこれまでに作成したルールです。

RewriteRule ^admin/?(.*)$ admin/index.php?rt=$1&%{QUERY_STRING} [L,QSA]

拡張子が.htmlのすべてに適用される2番目のルールがあります。したがって、何らかの理由でこれを行う場合は、http://domain.com/admin/page-to-test.htmlを2番目のルールに適用し、最初のルールと一致させないようにします。私も試してみました:

RewriteRule ^admin/?(.*)(!\.html)$ admin/index.php?rt=$1&%{QUERY_STRING} [L,QSA]

しかし、それもうまくいきませんでした。admin(オプションのスラッシュ)で始まり、拡張子はありません。

編集:RewriteRulesを変更しましたが、機能します。したがって、ルールが一致すると、Lのために停止します。それ以外の場合は、機能する他のルールを見つけようとします。Lをルールの範囲外にしないと、すべてのルールがチェックされ、問題が発生する可能性があります。

合計:

RewriteRule ^(.*).html$ index.php?rt=$1&%{QUERY_STRING} [L,QSA]
RewriteRule ^admin/?(.*)$ admin/index.php?rt=$1&%{QUERY_STRING} [L,QSA]
4

1 に答える 1

1

「.html」ルールを「admin」ルールの前に置き、「。html」ルールに「L」フラグを付けて、その後にルールが適用されないようにします。

于 2013-03-24T15:06:27.337 に答える