Mod_rewriteが有効になっているLAMPスタックにフレンドブログをインストールしたところです(同じサーバーにインストールされている私のDrupalのきれいなURLに使用しています)。何らかの理由で、WordPress(3.0.3)はmod_rewriteが有効になっていることを認識しません。 PermalinksメニューにはPATHINFOパーマリンクのオプションが表示されています(url文字列の前にindex.phpが付いています)。
今のところ私が修正したのはカスタム構造フィールドを使い、index.phpの部分にWordPressが挿入しようとしている部分を少なくして入力することでした。
これは3.0.3の異常ですか?サーバー構成を調査する時間はあまりありませんでしたが、ガイダンスをいただければ幸いです。
$ _SERVER ['SERVER_SOFTWARE']の出力はWebServerXです。
それはあなたの問題のように見えます - wp-includes/vars.php
のこの行をチェックしてください:
/**
* Whether the server software is Apache or something else
* @global bool $is_Apache
*/
$is_Apache = (strpos($_SERVER['SERVER_SOFTWARE'], 'Apache') !== false || strpos($_SERVER['SERVER_SOFTWARE'], 'LiteSpeed') !== false);
プラグインまたはテーマのfunctions.php
のいずれかで、この変数を手動でオーバーライドする必要があると思います。
global $is_Apache;
$is_Apache = true;
@ John P Blochの小道具:
パーマリンクに 'index.php'が自動的に追加されるのは、$ is_Apacheがfalseを返す場合だけです。
あるいは、次のコードをfunctions.phpファイルに追加することもできます。
add_filter( 'got_rewrite', '__return_true', 999 );
これはWordPressがnginxとうまく動作するようにするためです。