この記事の所要時間: 310

BaserCMSで弊社サイトリニューアル時、困ったことが・・・

BaserCMSでは
.htaccessにてゴニョゴニョしてリクエストパラメータを処理した結果を表示してくれているのですが
そもそもこのサイト上にあった「サンプルコード」も移設しており(ちょっと変なところに置いちゃったなぁという反省はあります・・・)
このサンプルコードのディレクトリ名を入れてもCMSのパラメータとして処理されちゃうため
「404 Not Found」ってなっちゃっていたんです。

でも・・・特定ディレクトリを除外する設定を.htaccessには記述してあったんですよ・・・。

うーん。困った~。
で、「RewriteCond効かない」でGoogle検索。

すると、全く同じ検索で同様の回答を得た方の記事を発見!

kennyjのブログ(仮): RewriteCondが効かずに困った.

助かりました。

解決しました。

—————
RewriteEngine on
RewriteBase /
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
—————
本来、リダイレクトしていた部分は上記の部分

これを下記の通り替えてあったかんじです。
—————
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/(autoheight|ajax|archives|exvali|exvali2|fb|tsa)
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
—————-
・・・これでダメだったので困ったわけですよ・・・。

解決方法はこれ・・・
—————-
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/(autoheight|ajax|archives|exvali|exvali2|tsa)
RewriteRule ^$ app/webroot/ [L]
RewriteCond %{REQUEST_URI} !^/(autoheight|ajax|archives|exvali|exvali2|tsa)
RewriteRule (.*) app/webroot/$1 [L]
—————-
RewriteRuleが2つある場合はそれぞれRewriteCondを書いて上げると良さそう・・・
※良さそう・・・とか言ってないでキチンとこの機会に勉強しないとダメっすね。

これで解決しました。

ちなみに・・・上記で書いた通りの場所にはサンプルコードがあります。

http://gti.jp/autoheight/
http://gti.jp/ajax/ ※ここはこのサブディレクトリにまたいろいろあります。
http://gti.jp/archives/ ※ここはこのサブディレクトリにまたいろいろあります。
http://gti.jp/exvali/
http://gti.jp/exvali2/

この記事が気に入ったら
いいね ! しよう

Twitter で