こんばんは。きわさです。
またまた備忘録です。
つい最近、.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]
わかる人には簡単なことかもしれないですが、まだまだぺーぺーな冴えない僕には勉強になります。