пятница, 30 декабря 2016 г.

WordPress – циклическая ошибка при входе в /wp-admin

Что такое циклическая переадресация?

Циклическая переадресация – это бесконечное перенаправление страницы на свой собственный адрес или же перенаправление на адрес, который в конечном итоге все равно приводит на одну и ту же страницу.
1)Проверяем файл   .htaccess :
# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

2) Проверяем файл wp-config.php и добавляем в него следующие записи  после   define('DOMAIN_CURRENT_SITE', 'сайт');
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
$_SERVER[ 'SERVER_ADDR' ] = DOMAIN_CURRENT_SITE;
$_SERVER[ 'REMOTE_ADDR' ] = DOMAIN_CURRENT_SITE;
$_SERVER[ 'HTTP_HOST' ] = DOMAIN_CURRENT_SITE;


Не работает?
Тогда, в сети можно найти следующий совет, сбросить возможность SSL соединения, добавив в тот же файл wp-config.php строчку:
define('FORCE_SSL_ADMIN', false);
3)Если и это не помогло – сделайте, наконец самое простое, что нужно было сделать ещё в самом начале, проверьте права папки ../wp-admin/ они НЕ должны быть 777, это важно!
Попробуйте поставить их в 705 или 755.
За одно и права файла wp-admin/index.php посмотрите – лучше всего, если они будут установлены как 644.

Правка .htaccess на удаление слеша в конце и ошибка при входе в админку

Всем известно, что для поисковой оптимизации контент страниц должен быть уникальным. Тем не менее даже если вы честно написали для каждой страницы свой текст, могут появиться дубли, которые возникают из-за генерации адресов со слешем и без слеша. Для пользователя это неважно, а вот поисковые машины воспримут такие страницы как разные, но с одинаковым контентом.
Чтобы проверить, есть ли такая проблема у вашего сайта, нужно просто забить его адрес со слешем и без слеша на конце («http://www.mysite.ru/page.html» и «http://www.mysite.ru/page.html/»). Если существуют обе страницы, это негативным образом сказывается на ранжировании.
Эту проблему можно решить правкой файла .htaccess (он лежит в корне сайта). Нужно открыть файл и добавить туда следующий код:
1
2
3
4
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Теперь слеши на конце будут удаляться, а если адресс должен быть со слешем, тогда нужно добавить еще строчку, исключающую удаление слеша 
Тогда нужно добавить еще строчку, исключающую удаление слеша из адреса админки:
1
RewriteCond %{REQUEST_URI} !^/admin(/(.*)|$)
(вместо admin прописывается адрес к админке, например, в WordPress это wp-admin, в modx — manager).
Целиком правила получаются вот такие:
1
2
3
4
5
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond %{REQUEST_URI} !^/manager(/(.*)|$)
RewriteRule ^(.*)(/)$ $1 [L,R=301]