2016-12-17 11 views
0

У нас есть домен, который https://developer.site.com обслуживается на одном сервере. Затем у нас есть https://developer.site.com/blog, который находится в совершенно другом месте, обслуживая сайт wordpress. (С технической точкой зрения это называется "вперед переписывает.)Wordpress wp-login перенаправление на неправильный URL-адрес при использовании передовой перезаписи

Переднего конец и наиболее из админ действуют хорошо, однако есть несколько мест, где он перенаправляет обратно к 404 на другом сервер.

Например:

https://developer.site.com/blog/wp-login.php?action=rp&key=t34T4akjihAB231sCwgJU9TU&login=abcde

Этот URL перенаправляет на 404, за исключением/блога части из URL.

При отслеживании сайта, похоже, он идет по правильному URL-адресу, но сразу же Wordpress отправляет его на страницу 404, так что это что-то не так с wordpress. Мы проверили и дважды проверили маскировку домена, и мы убеждены, что все это хорошо.

Я нашел wp_safe_redirect() в коде несколько раз. Это может быть преступником? Возможно, что-то подтягивает неправильную структуру каталогов, оставляя внутреннюю часть/blog, но я не понимаю, почему это имеет значение.

ответ

1

Вы можете фильтровать перенаправляет здесь то, что я думаю, что будет работать для вас

add_filter('allowed_redirect_hosts' , 'my_allowed_redirect_hosts' , 10); 
function my_allowed_redirect_hosts($content){ 
    $content[] = 'blog.example.com'; 
    $content[] = 'codex.example.com'; 
    // wrong: $content[] = 'http://codex.example.com'; 
    return $content; 
} 

Более подробную информацию о здесь https://codex.wordpress.org/Function_Reference/wp_safe_redirect

Скопируйте следующий код в текстовом редакторе ИЗМЕНИТЬ ПРИМЕР HOST DOMAIN ЛИНИЙ и сохранить его поскольку allow-host-plugin.php помещается в папку с разрешенным хостом-плагином и загружает ее в ваш каталог плагинов, отправляйте вам плагины в admin и активируйте. Это должно сработать.

<?php  
/* 
Plugin Name: Allowed Host Plugin 
Description: Site specific code changes for allowed host domains no admin change in code below 
*/ 
/* Start Adding Functions Below this Line */ 
defined('ABSPATH') or die('No script kiddies please!'); 

add_filter('allowed_redirect_hosts' , 'my_allowed_redirect_hosts' , 10); 

function my_allowed_redirect_hosts($content){ 
    // Add your allowed hosts below 
    $content[] = 'blog.example.com'; 
    $content[] = 'codex.example.com'; 
    // wrong: $content[] = 'http://codex.example.com'; 
    return $content; 
    } 

/* Stop Adding Functions Below this Line */ 
?> 
+0

Простите, я бы включил это в функции functions.php моей темы? – mydoglixu

+0

Вы должны написать плагин для wordpress, чтобы использовать функцию таким образом, чтобы вы не меняли файлы ядра. Существует множество примеров того, как написать подключаемый модуль или найти простой плагин, например, hello world переименовать его и добавить функцию. @mydoglixu https://codex.wordpress.org/Pluggable_Functions https://codex.wordpress.org/Writing_a_Plugin – chop62

+0

Я не хочу сказать, что я изменил бы основные файлы, но в моем в.ч.-контента /themes/themename/functions.php. Это достаточно хорошее место для этого? – mydoglixu