RewriteRuleで同じ名前のフォルダから同じファイルへのリダイレクトができない

top.html というファイルに http://example.com/top/ というurlでアクセスするために、.htaccess に以下の記述をした。

—————————
RewriteEngine on
RewriteRule top/$ /top.php
—————————

しかしリダイレクトがされない。なぜか?
おそらく RewriteRule の「top/$」の部分は、そういう名前のファイルがないことを条件に指定したパスへリダイレクトを行うからだと思う。だから、top.php という名前のファイルが存在している状態で「RewriteRule top/$」と指定すると top.php というファイルがあるからリダイレクトにならない。(本当なら「top/」のパターンに top.php はマッチしないはずだが)

ひとつわかったこと
転送先のURLのディレクトリに .htaccess ファイルがあると転送後にさらにリダイレクトが実行されるのではまる!!

top.php ファイルがルートディレクトリにない状態だとリダイレクトできる。
ただ、ファイルがないので404エラーになる。
↓↓
—————————
RewriteEngine on
RewriteRule top/$ /top.php
—————————

top.php ファイルがルートディレクトリにある状態でも以下の書き方ならリダイレクトする。

—————————
RewriteEngine on
RewriteRule top/$ /toppage.php
—————————

OR

—————————
RewriteEngine on
RewriteRule tap/$ /top.php
—————————

RewriteRule はいまいちよく分からない。

タイトルとURLをコピーしました