0

これは私の.htaccessファイルです:

RewriteEngine On
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

ユーザーが に移動するhttp://local/homeと正常に動作しますが、ユーザーが に移動すると がそこにとどまりhttp://local/home.php、 の.phpないページにリダイレクトされない.phpため、調査したので、これを重複としてマークしないでください。

4

1 に答える 1

1

リクエストをphp拡張機能にリダイレクトして、それなしでリダイレクトするルールはありません。それがそこにとどまる理由です。php 拡張機能が欠落しているリクエストを内部的に書き換えるルールを追加したからといって、それが魔法のように逆方向に発生するわけではありません。ルールの先頭で、実際のリクエストと照合し、php ファイルをリクエストしたときにブラウザをリダイレクトする必要があります。

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /(.+)\.php(\?|\ )
RewriteRule ^ /%2 [L,R=301]

もっと:

ルールは、要求された 1 つのことのみを実行し、URI に対してパターンを照合し、ターゲットに書き換え/リダイレクトすることを認識するだけです。

于 2013-08-20T00:55:01.043 に答える