0

この書き換えルールは、.php拡張子を削除するのに問題なく機能しますが、ファイル名がクエリ文字列で渡された場合、そこでも拡張子を削除しようとします。クエリ文字列を無視するようにするにはどうすればよいですか?

RewriteCond %{THE_REQUEST} ^GET\ (.*)\.php\ HTTP
RewriteRule (.*)\.php$ $1 [R=301]
4

1 に答える 1

1

(.*)書き換え条件での一致をより厳密にする必要があります。現在、URIまたはクエリ文字列と一致しています。試す:

RewriteCond %{THE_REQUEST} ^GET\ ([^\?]+)\.php
RewriteRule (.*)\.php$ $1 [R=301]

[^\?]+、ではないものと一致し?ます。を削除\ HTTPすると、クエリ文字列がに続く可能性があります.php

于 2012-12-10T03:12:00.147 に答える