6

MAMPを使用してローカルで簡単なWordPressサイトを作成し、SVNリポジトリにチェックインしました。次に、開発サーバーにチェックアウトしました。

サーバー上のデータベース内のサイトのURLを更新するために、Interconnectitから検索および置換ツールスクリプトを実行する以外は何も変更しませんでした。

最初は、500サーバーエラーが発生しました。ログを確認したところ、この「SoftException」はindex.phpグループごとに書き込み可能であったためであることがわかりました。アクセス許可は664でした。問題ありません。アクセス許可を644にすばやく変更すると、それがソートされました。だから今、フロントサイドは機能していた。

しかし、奇妙なことに、サイトの管理者側は機能しませんでした。すべてのブラウザで無限のリダイレクトループが発生しました。

Error 310 (net::ERR_TOO_MANY_REDIRECTS): There were too many redirects.

ローカル開発バージョンから何も変更されていません。htaccessファイルは単なる標準のWordPressファイルです。奇妙なことは何もありません...まだローカルで正常に動作しています。

どうしたの?

4

16 に答える 16

10

何らかの理由で/wp-admin/ pathはリダイレクトループを引き起こしますが、/ wp-admin/index.phpは引き起こしません。そのため、.htaccessを使用して、「RewriteBase /」行の後に次の行を追加することで、/wp-admin/パスを/wp-admin/index.phpにリダイレクトできます。

RewriteBase /
RewriteRule  /wp-admin/ /wp-admin/index\.php [L,P]

それは私にとってそのように働いた。最終的な.htaccessはおそらく次のようになります。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule  /wp-admin/ /wp-admin/index\.php [L,P]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
于 2014-02-07T04:23:30.447 に答える
9

の権限を確認するwp-login.phpと、それらも何らかの形で664に設定されていることがわかりindex.phpました。これは、失敗して500サーバーエラーが発生したのと同じ権限です。

の権限wp-login.phpを644に変更しましたが、WordPressのログインページが表示されました。

しかし、ログインすると、別のリダイレクトループが発生します。したがって、もう一度見てみると/wp-admin/index.php、権限は644ではなく664でした。

それらを修正すると、次のファイルに問題が発生しました。ダッシュボードは混乱していました。1つずつ、664から644に変更すると、問題が修正されました(/wp-admin/load-scripts.php、/wp-admin/load-styles.php)。

したがって、権限の再帰的な変更が物事を整理する唯一の方法であることが明らかになりました。

私のUNIXは一流ではありませんが、これは機能しているようです(Mac OS Xターミナルから実行)。このWPインストールのルートディレクトリから実行しました。

find . -type f -perm 664 -print -exec chmod 644 {} \;

より良いコマンドがあるかもしれませんが、これは「664のアクセス許可を持つすべてのファイルを検索し、それらを644に変更する」ことを意味すると理解しています。

それは私の問題を修正しました。

于 2013-01-26T00:39:27.870 に答える
9

Cloudflareを使用している場合は、これをwp-config.phpファイルのTOPに追加してみてください。

define('WP_SITEURL', 'https://www.example.com');
define('WP_HOME', 'https://www.example.com');
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
if(isset($_SERVER['HTTP_CF_VISITOR']) && strpos($_SERVER['HTTP_CF_VISITOR'], 'https')){
  $_SERVER['HTTPS']='on';
}

これをwp-config.phpファイルの先頭に追加することが重要です。そうしないと、「申し訳ありませんが、このページへのアクセスは許可されていません」というエラーメッセージが表示されます。

クレジット:https ://www.meltajon.com/dev/wordpress-wp-admin-redirect-loop-with-cloudflare-ssl

于 2018-11-04T14:36:08.163 に答える
5

Webサーバーがnginxの場合、nginxの構成ファイルを確認する必要がある場合があります。もしあれば

if (!-f $request_filename){
    rewrite ^/(.+)$ /index.php?$1& last;
}

これらの行を次のように置き換えます

try_files $uri $uri/ /index.php?$args;

Nginxの落とし穴nginxのWordPresswikiページも参照してください。

于 2013-11-16T06:35:17.563 に答える
3

nginx configを使用すると、元々この行しかなく、同じリダイレクトの問題が発生しました。

location / {
    try_files   $uri /index.php$is_args$args;
}

これを追加した後、すべてがうまくいきました:

location /wp-admin/ {
    index index.php;
    try_files $uri $uri/ /index.php$args;
}
于 2017-07-25T01:39:11.023 に答える
2

Cloudflareを使用している場合は、Cloudflareアカウントの[SSL / TLS]タブで、[完全暗号化]を選択します。それは問題を解決します。 SSL/TLS設定

于 2019-12-24T12:19:38.193 に答える
1

リダイレクトをフラッシュする必要がありました。管理者にアクセスできなかったので、functions.phpファイルの先頭にこれを追加しました。

flush_rewrite_rules(); exit;

それを保存して、私のサイトを更新しました。次に、functions.phpファイルからコードを削除してから、もう一度更新します。それは私のためにそれをしました。

また、パーマリンクを再保存することも良い方法だと思います。

PS。/ loginにリダイレクトされていたため、主な問題はtheme-my-loginにあると思います。

于 2014-11-10T10:27:05.320 に答える
1

WPサイトで公開しようとしたときにDoSページを取得していました。function.phpファイルのアクセス許可を600に変更すると問題が解決し、そのファイルにスクリプトスニペットを追加できるというアドバイスを見つけました。WPヘルプページでした。私は回避策で出版にたどり着くことができました。エディターを開こうとしても、まだDoSがあります。

于 2015-06-17T13:44:40.070 に答える
0

私の問題は、ハードディスクがいっぱいだったことです。WordPressの管理パネルにログインしようとすると、wp-login.phpにリダイレクトされていました。一部のファイルを削除した瞬間、再度ログインできました。

于 2015-05-17T14:50:37.597 に答える
0

行を削除するには

define('DOMAIN_CURRENT_SITE', 'www.sitename.de');

define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

からwp-config.php仕事をする必要があります。

これらの行はマルチには必要ありません

于 2015-06-05T13:09:33.077 に答える
0

サイト対応フォルダーで、サイトの構成を編集し、マルチサイトリダイレクトルールを追加する必要があります。Ubuntu 14.04の場合、パスは/ etc / nginx/sites-availableの下にあります。

サーバーブロックに次のブロックを追加すると、無限のリダイレクトループを回避できるはずです。

#Rewrite multisite '.../wp-.*' and '.../*.php'.
if (!-e $request_filename) {
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;
    rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
    rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}
于 2016-04-07T13:14:28.340 に答える
0

私の場合も同様の問題がありました。これは、WPMigrateDBで作成されたdbスクリプトを復元したことが原因でした。スクリプトには、「## DEV URL ##」のようなマージタグがあり、mysqlでスクリプトを実行し、wp-config.phpを正しいデータベースにポイントする前に修正する必要がありました。

于 2017-06-21T10:30:34.220 に答える
0

私の場合、それはApacheのDirectoryIndex問題でした。wp-adminによってアクセスされていましたwp-admin/index.phpが、ではなくwp-admin、表示されていましたERR_TOO_MANY_REDIRECTS

ApacheDirectoryIndexが「正しく」設定されていないようです。.htaccessファイルの先頭でこれをリセットしてみてください。

DirectoryIndex index.php

ここで完全な答えを参照してください。 その後/index.phpなしでwp-adminを使用して管理ダッシュボードにアクセスすることはできません

于 2019-10-10T08:32:11.257 に答える
-1

nginxを使用している場合は、インデックス構成も確認してください。私に関しては、私は問題を抱えていました:私は以下を設定しました:

server {
    server_name _;
    root /var/www/html;
    index /index.php;
}

ご覧のとおり、末尾にスラッシュを付けてindex.phpを設定しました。これは、すべての書き換え要求がdocument_rootのindex.phpに送信されることを意味します。wp-adminディレクトリには独自のindex.phpがあるため、WPの場合は間違っています。

于 2017-03-04T21:53:16.690 に答える
-1

上記の答えは私をかなり近づけました。私たちの特定のケースでは、ある時点で誰かがサイトルートとadminフォルダーのhtaccessファイルにいくつかのルールを追加して、ホワイトリストに登録されたIPを除くすべての場所からのトラフィックをブロックしました(wp-adminにアクセスしようとしたとき)。

例:

<Files wp-login.php>
   order deny,allow
   Deny from all

   # Allow from this IP address
  allow from 123.45.67.89
</Files>

両方のファイルのホワイトリストにIPを追加すると、問題が解決しました。

于 2017-06-15T15:52:42.867 に答える
-1

他のサーバーからバックアップを復元した後、同じ問題に直面しました。この方法で解決することは有望な問題でした。

  chown -R www-data:www-data          /var/www
  chmod -R g+rwx                     /var/www

Webサイトファイルを保存する場所 /var/wwwは、構成に応じて適切なパスに置き換えます。たとえば、/usr/share/nginx/www<< default Nginx

于 2017-11-04T23:34:34.833 に答える