Codeigniterで作っているWebアプリで、www.ドメイン名でのアクセスをwwwなしのドメイン名へリダイレクトしつつ、index.phpを省略する.htaccessの書き方。
とりあえず、このhtaccess書けば実現できる。
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC] # wwwなしへリダイレクト ここでwww.を加えればwwwありに統一できる。 RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301] # index.phpを省略する部分 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
Codeigniterのあれこれ
CodeigniterでWebアプリを構築すると、次のようにそれぞれのコントローラを変えて動かすことができる。
http://domain/index.php/{コントローラ名}
また、htaccesssでこのindex.phpを省略して、次のような形で動かせるようにしておくのが一般的だ。
http://domain/{コントローラ名}
ここまでが以前から設定していた部分で、セッション周りの問題で、気づいたらwwwついてて違うセッションになってるじゃんという状況を回避するために、どちらかに統一したかった。
wwwあり/なしの統一は調べればたくさん出てくる。
単純に今まで書いていたやつの最後に、そのwww統一の記述を加えたけど、思い通りに動かなかった。
日本語で調べてもいまいち欲しい情報が得られなかったけど、またStack Overflowに先人がいたので参考にさせてもらいました。
記述する順番の問題だったようです。