URLの仕組みや構造についてググれば解決できそうなトピックですね。wpmuは別に関係ないと思うけど。
当方の環境では//(スラッシュ2つ?)でアクセスしても無限ループにはならないように感じます。
htaccessやapachのini設定などに問題があるのではないですか?
takuyaさん shokun0803さん ありがとうございます。
URLの仕組みや構造についてググれば解決できそうなトピックですね。wpmuは別に関係ないと思うけど。
教えるまでもなく自分で調べれば、わかる範囲ということですね。
自分でよく調べてから質問するように努力します。
当方の環境では//(スラッシュ2つ?)でアクセスしても無限ループにはならないように感じます。
自分で調べた範囲では、2.8.4以外だと、無限ループやエラーは発生しないようです。
また、以下のようなURLでも発生していません。
http://example.com//wordpress/archives/362
http://example.com//wordpress/css/?p=14
htaccessやapachのini設定などに問題があるのではないですか?
その可能性は、否定できませんが、ルート.htaccessは、標準のままです。
自分なりに、エラーを出さないとか、リダイレクトするとか工夫したいと思いますので、解決済みとさせていただきます。
とにかくエラーメッセージをよく見ましょう。
Warning: is_file() [function.is-file]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (.:/virtual:/tmp:/usr/local/lib/php:/usr/local/php/bin) in /virtual/example/public_html/wordpress/wpmu-settings.php on line 135
つまり、//wordpress/ だったら、ルートディレクトリー (/) にアクセスしてしまっているということですよね。これはなんかサーバーの設定が変な気がします。サーバー管理者に相談した方がいいでしょう。セキュリティー的に非常にやばいと思います。
lilyfanさん ありがとうございます。
エラーが発生している部分のコードは、以下のようなものでした。
wpmu-settings.php
if ( $blogname != '' && !in_array( $blogname, $reserved_blognames ) && !is_file( $blogname ) && $blogname != '/') {
$path = $path . $blogname . '/';
}
エラーが発生するときに、$blognameの値は、’/’になっていました。
このため、エラーが発生していました。対症療法として、
if ( $blogname != '' && $blogname != '/' && !in_array( $blogname, $reserved_blognames ) && !is_file( $blogname ) ) {
$path = $path . $blogname . '/';
}
とすることで、エラーの発生を抑制することができました。
ディレクトリセパレータがが2個続くと、ブログ名を/として解釈するのは、なぜでしょう。
エラー時のパスの値は、/wordpress/// となっていましたので、coreserverは、そんなアクセス許可してないよとエラーを吐いたんだろうと解釈しています。
display_errorsは通常ですと表示しない設定になっていますので、エラーが発生していることに気づくことは、少ないかもしれません。
セパレータを2個つけるなんてことも、普通しません。
生意気な考えかもしれませんが、2.8.4のセキュリティアップデートは、不完全な部分を残しているのではないだろうか?
という部分で、バグ報告に投稿させていただきました。
恥をかきそうですが、サーバのどのような設定を疑っておられるか教えていただけるとうれしいです。
当方の環境では//(スラッシュ2つ?)でアクセスしても無限ループにはならないように感じます。
htaccessやapachのini設定などに問題があるのではないですか?
気になって、調べているのですが、判然としません。
誰にもおきていない事柄のようで、何か恥ずかしさを感じますが、自分なりに調べてみたことを、追記します、ヒントなどいただけるとうれしいです。
wp-includes/template-loader.phpの7行目、
do_action('template_redirect');
をエスケープすると、無限ループにならなくなります。
エスケープしない限り、プラグインをすべてはずしても、テーマをデフォルトにしても、functions.phpを空にしても、無限ループに陥っています。
自分のブログへの対処は、以下のようにして様子を見ることにしました。
wp-includes/canonical.php line 210
一行追加
$redirect[‘path’] = str_replace(‘//’, ‘/’, $redirect[‘path’]);
「バグ報告と提案」から「使い方全般」にトピックを移動しました。