phpをcgiモードにすると管理画面でCSSが利かなくなる

このブログを設置しているレンタルサーバのPHPがセーフモードに設定されているので、
wordpressの「アップグレードインストール機能」やプラグインからの「ファイル書き込み」等に制限がかかってしまいます。

それらを便利に利用するために、htacceseファイルにPHPがcgiモードで動作するよう記述します。
例えば、本体アップグレードならば、
<Files update-core.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

今までは、cgiモードで動作させたいPHPプログラムファイルを随時追加記述していたのですが、数が増えてきたの、全ての.phpファイルをcgiモードで動かすようにしてみました。
<Files *.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

すると、
管理画面のCSSが利かなくなり、寂しい状態に。。。


原因は、
管理画面が読み込むCSSファイルの「content-type」が「text/html」となってしまっているからのようです。
参考:
●Bowz::Notebook

wordpressは、常に決まったCSSを読み込んでいるのではなく、状況に応じたCSSをload-styles.phpが出力しているようで、PHPをcgiモードで動かすことによりブラウザへ届くcontent-typeが変わってしまったようです。

ということで、load-styles.phpだけモジュール版で動いてもらいます。
<files load-styles.php>
AddHandler application/x-httpd-php .php
</files>
これで、CSSが利くようになりました。


ちなみに、
Internet Explorerでは、問題なく表示されます。
たぶんIEは、サーバから送られてくる「content-type」等の情報よりも、ファイルの拡張子もしくは中身を確認して処理しているのかもしれません。

カテゴリー: CSS, PHP, security, wordpress   パーマリンク

コメントは受け付けていません。