ルートにアクセスしたときもサブディレクトリのURLの内容を表示したい

こんばんは。きわさです。

またまた備忘録です。
つい最近、.htaccessの話を書いたばかりですが、またしても.htaccessの話なんです。まとめて書ければよかったのですが、やっぱり冴えないですね。

さて、
このブログのURLはサブディレクトリをトップページにしているので、
http://○○○.com/△△△/
が、トップページのURLとなります。

そして、ルートディレクトリには何も置いていないので、
http://○○○.com/
にアクセスすると「ページが見つかりません」となってしまいます。

このときも、
http://○○○.com/△△△/
と同じ内容を表示できないかと思ったわけです。

前回の
Redirect permanent とはまた違うやり方です。

RewriteEngine on
RewriteBase /
RewriteRule ^$ △△△/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ △△△/$1 [L]

RewriteRule 遷移前 遷移先 です。
また、RewriteCond %{REQUEST_FILENAME} !-f や RewriteCond %{REQUEST_FILENAME} !-d で、指定されたURLにファイルやディレクトリが実在するかどうかを見ています。

これで、
http://○○○.com/△△△/ にアクセスしたときはそのまま、http://○○○.com/△△△/ を表示し、
http://○○○.com/ にアクセスしたときも http://○○○.com/△△△/ を表示できます。

ただ、ルートディレクトリに index.html があると、
http://○○○.com/ にアクセスしてもそのまま http://○○○.com/index.html を表示してしまいます。
index.htmlを削除するか、先ほどのRewriteCondを削除するかですね。

RewriteEngine on
RewriteBase /
RewriteRule ^$ △△△/ [L]
RewriteRule ^(.+)$ △△△/$1 [L]

わかる人には簡単なことかもしれないですが、まだまだぺーぺーな冴えない僕には勉強になります。

スポンサーリンク