3

サイトの URL を次のように書き換えたい

  1. www.example.com/loginはwww.example.com/login.phpを指します

  2. www.example.com/login/もwww.example.com/login.phpを指しています

  3. サイトの奥深くにあるページは、上記のルールに従う必要があります。すなわち

    www.example.com/inner/inner2/something およびwww.example.com/inner/inner2/something/も指す必要があります

    www.example.com/inner/inner2/inner3/something.php

  4. www.example.com/login/anything、存在しない場合は 404 を表示する必要があります(私の場合はループを引き起こしています)

私が書いたルールは次のとおりです。

   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME}\.php -f 
   RewriteRule ^(.*[^/])$ $1.php [L]   
   RewriteRule ^(.+)/$ $1.php [L]

上記の 3 つのケースでは問題なく動作しますが、4 つ目のケースではループが発生しています。

また、拡張子が .php のファイルが要求された場合は、404 を表示したいと考えています。

また、REQUEST_FILENAME の代わりに REQUEST_URI を使用すると、上記のルールの動作が変わります。2つの違いは何ですか?

ティア

4

1 に答える 1