1

httpd conf ファイルに次の書き換えルールがありました。

RewriteRule (.*?)\.html $1.php?%{QUERY_STRING} [NC]

うまくいきました。しかし、同じ仮想ホストの .htaccess に配置すると、http ホストではなく $1 のドキュメント パス全体が返されます。「html」を「php」に置き換えるだけです。

私は明らかに、.htaccess が書き換えルールでどのように機能するかを理解していません。

4

3 に答える 3

1

ルールのターゲットに先頭のスラッシュを追加する必要があります。

RewriteRule (.*?)\.html /$1.php?%{QUERY_STRING} [NC]

?%{QUERY_STRING}また、ターゲット内のビットを取り除くこともできます。?がない場合、クエリ文字列は自動的に追加されます。.

于 2012-07-19T06:05:47.453 に答える
0

その醜いものを見て、私の目は出血しそうです...

 RewriteRule ^(.*).html?(.*)$ $1\.php?$2 [NC]
于 2012-07-19T06:08:10.590 に答える