MENU

CPIのシェアードプランACE01のwwwあり/なし対策。他の良い方法を教えてください。

先日のエントリーでも書いたように、CPIのシェアードプランACE01という無制限サーバに絶賛引っ越し中。

意外な落とし穴にハマっております。

http://dev.nearly.jp/test
てな感じで、最後にスラッシュが無い状態でアクセスすると、

→ http://www.dev.nearly.jp/test/
てな感じで、www付きアドレスでリダイレクトされちゃうんですわ。

その対策に試行錯誤したモトヲさんの物語です。

Apacheの設定(ServerNameの変更)で済むんだろ?ってな感じなんだけど、とりあえずCPIのサポートに連絡。

んで、回答。

状況として、www付きでリダイレクト(301転送)の動作が
働いてしまいます事は、サーバー仕様となります。

出た。「仕様です」。何度も口にした言葉だけど、人から聞かされるとイラっとする。気をつけよう。

ちなみにCPIサポートとのやり取りで、WebサーバがApache/1.3.41だと判明。まぁいっか。

んで、気をとりなおして、Google先生に聞いてみたところ、.htaccess

Options +FollowSymLinks

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.dev\.nearly\.jp)(:80)? [NC]
RewriteRule ^(.*) http://dev.nearly.jp/$1 [R=301,L]

でよかろーもん、という回答。

解決かぁ〜とタバコを一服してみたところ、その下層にあるコンテンツで、別途.htaccessmod_rewriteの設定していると有効にならない事が判明。

フガぁ〜、どうしたもんかなぁとタバコを一服して考えて、リダイレクトしてしまおうと決意。

RedirectMatch 301 ^([^.]*[^/])$ http://dev.nearly.jp$1/

dev.nearly.jp/test_ok
うむ、ちゃんと動いた。

けど、2点ほど問題が。

http://dev.nearly.jp/test宛にPOSTしても値が受け取れない。リダイレクトされてるんだから当たり前。というか自分で気をつければいいレベル、か?

dev.nearly.jp/test.okみたいに、ディレクトリ名にドットが入るとアウト。www付きでリダイレクトという元に設定が効いちゃう。RedirectMatchの正規表現でなんとかなるのかなぁ。というか自分で気をつければいいレベル、か?

いまココ。なんとかならんもんかね。誰か教えて。