1

私はhtaccessの基本を学ぼうとしていましたが、最初のステップで頭がおかしくなり、貴重な時間を失いました。

htaccessコードは、1行で記述した場合と、2行で記述した場合で動作が異なります。

以下のコード

RewriteEngine on 
RewriteRule .* good.html   

そして、以下のコード

RewriteEngine on RewriteRule .* good.html   

動作が異なります。

どうなるか説明してください..htaccessが最初にすべての条件をチェックしてから機能するためだと思いますが、それでもそのように機能するわけではありません。

4

1 に答える 1

1

Apacheディレクティブは、それ自体が1行になっていることを想定しています。だからあなたが持っているとき:

RewriteEngine on RewriteRule .* good.html   

最初の「単語」はディレクティブです。例:RewriteEngine。オンにするかオフにするかを探し、次の「単語」はonです。これまでのところ、リライトエンジンがオンになっています。しかし、その後には他にもたくさんのがらくたがあり、それは無視されます。

しかし、あなたが持っているとき:

RewriteEngine on 
RewriteRule .* good.html   

書き換えエンジンは通常どおりオンになります。次に、RewriteRuleディレクティブが処理されます。行の最初の「単語」はRewriteRule。であるため、パラメータはRewriteRule 正規表現 ターゲット [フラグ]です。

したがって、それらが異なる行にある場合、すべてが内部的にに書き換えられgood.htmlます。同時に、それ以降onはすべて無視されます。

于 2012-10-04T09:15:54.257 に答える