首页 > 解决方案 > .htaccess 删除链接中的双 https:// http://

问题描述

我正在一个客户网站上工作,出于某种奇怪的原因,他们的很多链接显示如下:https://http://yourdomain.com/xxxx

当我使用控制台查看源代码并重定向到https://yourdomain.com时单击链接很好,但是当它是首页(未打开控制台)时,单击按钮(链接)将打开 https//yourdomain .com,将缺少“:”或“//”

我试图找到这些内容的来源,但没有运气,我不能不使用数据库来删除那个旧的“HTTP”,因为每次他们创建新资源时仍然会有https://http://

所以我想知道我是否可以使用 .htaccess 文件来检测所有那些仅指向“https://”的“ https://http:// ”链接。

谢谢您的帮助!

标签: wordpress.htaccesshyperlinkurl-rewriting

解决方案


我认为它在.htaccess 中不实用。但是,作为解决问题原因之前的临时解决方案,您应该能够在 WordPress 最终“输出”页面时添加代码来替换坏链接。

我打算写一个解决方案,但发现我只需要在 stackexchange 上修改“最终输出”的代码 本身基于这篇文章

尝试将以下内容添加到您的主题的 functions.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');

显然这只是一个临时解决方案,直到您解决问题的原因


推荐阅读