6

開発中 ( ) に問題なく動作する Wordpress サイトを持っていますが、mysite.devそれをリモート サーバー ( ) に展開すると、「この Web ページにはリダイレクト ループがあります」というエラーがmysite.comスローされます。

ブラウザが www.mysite.com、mysite.com、www.mysite.com を何度も試行していることを読み込みバーで確認できますが、これが適切かどうかはわかりません。

Wordpress データベースの構成が正しくない場合、データベース接続の確立中にエラーが発生するというメッセージが表示されますが、すべてが正しく設定されていると、このリダイレクト ループで中断されます。

siteurlリモート設定 ( ) を反映するために、データベース ( ) のフィールドを変更しましたhttp://mysite.com/wordpress

注: 私のワードプレス ファイルはwordpress、ルート ディレクトリwp-config.phpにあるindex.php.htaccess.

何か案は?

.htaccess の内容:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

index.php:

<?php
/**
 * @package WordPress
 */
define('WP_USE_THEMES', true);

require('./wordpress/wp-blog-header.php');
?>
4

10 に答える 10

5

私はまったく同じ問題を抱えていました(新しいサーバーに移行した後のリダイレクトループ)。

しかし、設定値 siteurl と home の問題ではなく、.htaccess ファイルの問題でもありませんでした。私はそれをすべて試しました。また、URL に追加された「www」についても問題ありませんでした

いくつかの調査の後、redirect_canonical 関数 (wp-inclue/canonical.php 内) への無限呼び出しによってループが発生していることがわかりました。しかし、それはワードプレスのバグではありませんでした。一部の Php 構成では、ルート URL にアクセスするときに $_SERVER['REQUEST_URI'] が「間違った方法」で設定されます。例: 私のサーバーでは、http: //example.com/ にアクセスすると、$_SERVER['REQUEST_URI'] が '/' ではなく '/index.php' に設定されますページについて知っている「より良い」URLにリダイレクトしてみてください。そして、あなたのサイトのルートのより良い URL は '/' です。私のサーバーでは、redirect_canonical が「/」にリダイレクトしようとするたびに失敗し、無限のリダイレクト ループが見つかるまで再試行しました。

このバグを修正するには、サーバー構成を変更することができます - 私はその方法を個人的に知りませんが、それが可能であることは知っています - または、変更できない場合は、次のコードをカスタムプラグインに追加するだけです:

/**
 * avoid redirection loop in redirect_canonical if REQUEST_URI 
 * contains '/index.php' 
 **/

/* remove the action set in the hook 'template_redirect' by wordpress */
remove_action('template_redirect', 'redirect_canonical');

/* set a custom action in the hook 'template_redirect' to check REQUEST_URI value */
add_action('template_redirect', 'correct_redirect_canonical');

/* Function to correct the behaviour of redirect_canonical */
function correct_redirect_canonical(){
    if(strstr($_SERVER['REQUEST_URI'],'/index.php')===false){
        redirect_canonical();
    }
}

それが役に立てば幸い !

于 2015-02-05T05:55:44.593 に答える
5

ホストされたサーバーの設定が mysite.com を www.mysite.com に強制していたため、これが問題の原因でした。この設定をオフにして、すべてが機能するようになりましたが、この設定をオンにして機能させる方法を知りたいです!

于 2013-01-21T12:25:08.837 に答える
4

1.-「私のワードプレスファイルはワードプレスというフォルダーに保存されている」ため、編集RewriteBaseしてRewriteRule次のようにする必要があります。

RewriteBase /wordpress/
RewriteRule . /wordpress/index.php [L]

アップデート

2.- すべての Cookie を削除してみてください。この単純なアクション (Firebug による) によって、この問題が解決されることがあります。

更新 3

3.- ルート ディレクトリで次の /index.php を試してください。

// index.php file in root directory
chdir('wordpress'); // change dir to WP
include 'index.php'; // execute WP with their normal `index.php`

通常どおりディレクトリを離れ/wordpressます(通常の index.php と .htaccess が内部にあります)。

index.phpつまり、次のようなWPの法線を少しも変更しないでください。

<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */

/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require('./wp-blog-header.php');
于 2013-01-20T21:16:45.563 に答える
0

このエラーは、ユーザー側または管理者側の2か所のいずれかで発生する可能性があります。

管理者側(wp-admin)で発生すると、ログインできないことがわかります。

ステップ1:ftpを使用してブログに接続し、wp-content / plugins /ディレクトリに移動して、すべてのプラグインをデスクトップ上のフォルダーにダウンロードします。ステップ3:FTPプログラムで、pluginsディレクトリ内のすべてのプラグインフォルダとphpファイルを削除します。このディレクトリには何も残したくありません。ステップ4:ブログにログインしてみてください。問題なくログインできるはずです。ブログのプラグインセクションにアクセスしてください。これは、エラーのために各プラグインが非アクティブ化されたことを示す多くのエラーでロードされるはずです。これで結構です。ステップ5:ftpプログラムを使用して、すべてのプラグインをアップロードする必要があります。アップロードしたら、wordpress内で各プラグインを1つずつアクティブにしてから、wp-admin /ログインアドレスにアクセスして、ログイン後にブログに確実にアクセスできるようにする必要があります。ステップ6:プラグインをアクティブにしてこのエラーが再び発生し始めると、どちらが原因であるかがわかります。ftp経由でそのプラグインを削除し、使用する代替プラグインを探し始めます。

これらの手順で問題が解決しない場合は、すべてのWordPressファイルをバックアップしてから削除する必要があります。最新バージョンのクリーンなワードプレスファイルをアップロードし、テーマやプラグインをアップロードせずにログインしてみてください。ログインできたら、後でアップロードできます。

それでもエラーが発生する場合は、ブラウザのキャッシュをクリアし、他のブラウザでログインをテストしてください。

他のすべてが失敗した場合は、ウェブホストに連絡するか、ワードプレスサポートフォーラムでスレッドを開いてください

于 2013-01-20T23:23:08.000 に答える
0

この投稿と解決策は本当に役に立ちましたが、この問題は私を夢中にさせ、気付くのに非常に時間がかかったからです。私の場合、同じサーバー内でファイルを移動したが、別のドメインを使用しており、すべての構成と置換を完了した後、ページを表示できず、このエラーが発生したために発生しました。私のホスティング設定には、domain.ltdに設定された優先ドメインがありました(変更しようとしましたが、最終的にはそのままにしました)。設定->一般的なワードプレスダッシュボードでは、WordPressアドレス(URL)「mysite.com」がありましたwww..bum なしで最後の値を設定した後、「www.mysite.com」に設定されたサイト アドレス (URL) はすべて問題ありません。これが他の誰かに役立つことを願っています

于 2014-09-06T15:37:39.143 に答える
0

URL の変更を追跡するRedirectionなどのプラグインを使用していますか? これにより、mysite.dev/page/ を mysite.com/page/ にリダイレクトし、mysite.com を mysite.dev にリダイレクトするループが作成された可能性があります。前に私に起こった!

于 2013-01-20T22:04:20.843 に答える
-1

私は同じ問題を抱えていました。答えは.htaccessファイルとそこのリダイレクトでした。私が使用していたテーマ/プラグインは、htaccess. プラグインを調べたところ、プラグインが参照しているコードが見つかり、htaccessファイル内でそれを変更しました。今では動作します。

于 2015-04-20T11:19:55.113 に答える