CPIサーバーのhttpsやルートディレクトリへのリダイレクトする.htaccessの書き方・記述
CPIサーバーの.htaccessの書き方が特殊なので、あとで見返せるようにメモを残しておきます。
契約のプランが「ACE01_2011」か「ACE01_2015」かで少し記述が変わります。
詳しくは「.htaccess の設定方法」(CPIオンラインヘルプ)
スポンサーリンク
Contents
.htaccessの記述
Options +SymLinksIfOwnerMatch RewriteEngine On RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://www.***.**/$1 [R,L] RewriteEngine On RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ https://www.***.**/$1 [R=301,L] RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html
はじめに
Options +SymLinksIfOwnerMatch
の記述がないとちゃんと動いてくれません。
「www.***.**」はドメインです。
なぜか「¥」マークが「バックスラッシュ」になってる。
上記の記述でうまくいかないときはその辺を見たほうがいいかもしれません。
コピペしたらちゃんとバックスラッシュになってるし、大丈夫かもしれませんが。
解説
RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://www.***.**/$1 [R,L]
はhttpsへのリダイレクトです。
RewriteCond %{THE_REQUEST} ^.*/index.html RewriteRule ^(.*)index.html$ https://www.***.**/$1 [R=301,L]
はindex.htmlから/(ルートディレクトリ)へのリダイレクトです。
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html
は.htmlの拡張子を無しにします。
設置する階層は?
/html/
の直下です。
コントロールパネルで制限しているディレクトリを作成していても
/html/admin
じゃなくて、
/html/
です。
おまけ
wwwなしで接続があった場合にwwwありの URL にリダイレクトする記述
Options +SymLinksIfOwnerMatch RewriteEngine On RewriteCond %{HTTP_HOST} ^example\.jp RewriteRule (.*) http://www.example.jp/$1 [R=301,L]