.htaccess удалите двойной https: // http: // в ссылке - PullRequest
0 голосов
/ 02 октября 2018

Я работаю на одном из клиентских сайтов, по какой-то странной причине, многие их ссылки показывают вот так: https://http://yourdomain.com/xxxx

Хорошо, когда я нажимаю на ссылку, когда я использую консольчтобы увидеть источник и будет перенаправлен на https://yourdomain.com, но когда его главная страница (без открытой консоли), нажмите кнопку (ссылка), откроется https // yourdomain.com, будет пропущено ":"или "//"

Я пытался найти источник этого контента, но не повезло, я не могу не использовать DB для удаления этого старого "HTTP", потому что каждый раз, когда они создают новый ресурс,все еще есть https://http://

Поэтому мне интересно, могу ли я использовать файл .htaccess для обнаружения всех этих "https://http://" ссылок на прямые" только https://".

Спасибо за помощь!

1 Ответ

0 голосов
/ 02 октября 2018

Я не думаю, что это практично в .htaccess.Однако в качестве временного решения до тех пор, пока вы не решите причину проблемы, вы должны иметь возможность добавлять код для замены плохих ссылок в тот момент, когда WordPress, наконец, «выводит» страницу.

Я собирался написать решениено обнаружил, что мне нужно было только изменить код для «окончательного вывода» уже здесь на stackexchange (сам по себе эта статья )

Попробуйте добавить следующее в функции вашей темы.php, или для постоянства вашего собственного пользовательского плагина, специфичного для сайта.

function my_linkfix_callback($buffer) {      
    $buffer = str_replace( 'https://http://' , 'https://' ,$buffer);
    return $buffer; 
}

function my_linkfix_buffer_start() { ob_start("my_linkfix_callback"); } 
function my_linkfix_buffer_end() { ob_end_flush(); }

add_action('after_setup_theme', 'my_linkfix_buffer_start');
add_action('shutdown', 'my_linkfix_buffer_end');

Очевидно, что это только временное решение, пока вы не решите причину проблемы

...