URLの正規化
index.phpやindex.htmlなどのデフォルトファイルをURLで指定した場合に、そのURLからスラッシュ(ファイル名なし)にリダイレクトさせる方法をメモ。
「/index.php or /index.html」から→「/」にリダイレクト
RewriteCond
で条件を指定します。^.*/index.(html|php)
でURLの末尾にindex.htmlかindex.phpが記述されていたら、301リダイレクトをかけます。
## indexファイル有り→無しに設定 RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ https://%{HTTP_HOST}/$1 [R=301,L]
できた!\(^o^)/
ちょっと注意したいのが、さくらインターネットのレンタルサーバー(私の場合はスタンダードプランでした)の場合、RewriteEngine on
の記述がないとうまくいきませんでした。メモメモ。
参考サイト
- Apache HTTP Server Tutorial: .htaccess files
- https://httpd.apache.org/docs/2.4/en/howto/htaccess.html