SOY CMS が OCN のホスティングサーバでうまく動かない件

NTT コミュニケーションズの「Biz ホスティング」というホスティングサービスを使うと、SOY CMS がうまく動かない・・・という相談がお客さんからあったので調べてみた。

俺自身は SOY という CMS は使ったことがない。
ネットショップを開いたりする時に使いやすい CMS だそうだ。

お客さんのところで色々なサーバで稼働実績があるらしいのだが、なぜか、他のサイトと同じようにインストールしても、トップページ以外のページに移動しようとすると、

Not Found
The requested URL /usr/home/hogehoge/htdocs/www/index.php was not found on this server.

とエラーが表示されて駄目・・・という状況。

ググってみると、「OCN のホスティングサーバで SOY がうまく動かない」という書き込みはけっこうあって、でも、ちゃんと解決策まで書いてあるところは見つけられなかった。

まあ、404 Not Found を出すにしても、URL ではなく、サーバ上の生のパスが表示されてるのが既に怪しい(^^;

SOY の場合、トップページ以外の全てのページへのアクセスが一旦 index.php に向かうように、

# @generated by SOY CMS at 2011-05-10 09:33:57
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.htm !-f
RewriteCond %{REQUEST_URI} !/index.php/
RewriteRule ^(.*)$ index.php?pathinfo=$1&%{QUERY_STRING} [L]

こういう内容の .htaccess が DocumentRoot にセットされる。

例えば、http://www.exsample.jp/hogehoge.php?hunya=999 のようなアクセスがあれば、自動的に http://www.exsample.jp/index.php?pathinfo=/hogehoge.php&hunya=999 みたいな感じにリダイレクトするわけだね。

なのに、

The requested URL /index.php was not found on this server.

ではなく、

The requested URL /usr/home/hogehoge/htdocs/www/index.php was not found on this server.

となってるのがもう駄目駄目。

これ、他のサーバではちゃんと動いてるらしいから、OCN のサーバの何やら独自仕様なのかね?
index.php という相対パスに対して、ローカルファイルのパスを付け足して、リダイレクト先としているようだ。

ということで、試しに .htaccess の一番下の行を、

RewriteRule ^(.*)$ /index.php?pathinfo=$1&%{QUERY_STRING} [L]

という具合に絶対パスとしてみた。

そうしたら、パスの補完はされず、素直に http://www.exsample.jp/index.php にリダイレクトされたようで、ばっちりどのページでも表示されるようになった。
あらら。

その後、この辺を重点的にググってみたら、リダイレクト先の指定を、

RewriteRule ^(.*)$ http://www.exsample.jp/index.php?pathinfo=$1&%{QUERY_STRING} [L]

みたいに、http から書け・・・という解決策もあった。
つまり、これも、変なファイルパスを補完させないってことで、俺の修正内容と一緒だな。

つーことで、SOY CMS を OCN のサーバで使う人は、.htaccess の修正がキモですぞ。

トラックバック(0)

このブログ記事を参照しているブログ一覧: SOY CMS が OCN のホスティングサーバでうまく動かない件

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/2233

コメントする

このブログ記事について

このページは、shinodaが2012年10月 5日 18:29に書いたブログ記事です。

ひとつ前のブログ記事は「「GOGOやまぐち」のカツ丼を買ってみた」です。

次のブログ記事は「ああ、砂鉄入りボールで練習したせいで左手首が痛い・・・」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら