当前位置: 首页 > 知识库问答 >
问题:

标题(“位置:url”)不重定向

戚研
2023-03-14

我已经浪费了很多时间试图从我的AMP页面重定向到其他页面。提交表单时,xhr操作通过POST发送数据来调用php文件。此php文件设置一个新位置,将页面重定向到另一个位置。我在php文件中要重定向的代码如下:

<?php 
header("Content-type: application/json");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: https://www.dominio.com/amp/*");
header("AMP-Access-Control-Allow-Source-Origin: https://www.dominio.com");
header("Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin");
$especi=$_POST["especialidad"];
$paises=$_POST["ES"];
$paismx=$_POST["MX"];
$paispr=$_POST["PR"];
$paiscl=$_POST["CL"];
$paisco=$_POST["CO"];
$paisar=$_POST["AR"];
if(isset($paises)){
    $urlbase="https://www.dominio.es/p/";
    $pais="ES";
    $provin=$paises;
    $pobla=0; //$_POST["zn2"];
}
/*
else if(isset($paismx)){
    $urlbase="https://www.dominio.mx/p/";
    $pais="MX";
    $provin=$paismx;
    $pobla=$_POST["zn2"];
}
else if(isset($paispr)){
    $urlbase="https://www.dominio.com/p/";
    $pais="PR";
    $provin=$paispr;
    $pobla=$_POST["zn2"];
}
else if(isset($paiscl)){
    $urlbase="https://www.dominio.cl/p/";
    $pais="CL";
    $provin=$paiscl;
    $pobla=$_POST["zn2"];
}
else if(isset($paisco)){
    $urlbase="https://www.dominio.co/p/";
    $pais="CO";
    $provin=$paisco;
    $pobla=$_POST["zn2"];
}
else if(isset($paisar)){
    $urlbase="https://www.dominio.com.ar/p/";
    $pais="AR";
    $provin=$paisar;
    $pobla=$_POST["zn2"];
}*/


$queryespe="SELECT * FROM tx WHERE Id='$especi'";
$resultespe = mysqli_query($link,$queryespe);
$fila = mysqli_fetch_array($resultespe);
$especialidad=$fila['Keyword'];
$especialidad=reemplazargui($especialidad);
$especialidad=reemplazarac($especialidad);
if($pobla!=0){
    $querypo="SELECT * FROM ts WHERE Id='$pobla'";
    $resultpo = mysqli_query($link,$querypo);
    $filapo = mysqli_fetch_array($resultpo);
    $poblacion=reemplazargui($filapo['Keyword']);
    $ulr=$urlbase.$especialidad."/".reemplazarac($poblacion)."/";
    mysqli_close($link);
    header ("Location: $ulr");
    die();
}else{
    $querypo="SELECT * FROM tx_2 WHERE Id='$provin'";
    $resultpo = mysqli_query($link,$querypo);
    $filapo = mysqli_fetch_array($resultpo);
    $poblacion=reemplazargui($filapo['Keyword']);
    $ulr=$urlbase.$especialidad."/".reemplazarac($poblacion)."/";
    mysqli_close($link);
    $ulr = html_entity_decode($ulr);
    header ("Location: $ulr");
    die();
    }

?>

过程到达实体_并正确解码,我放在头中的url(ulr)是正确的。我从chrome网络分析中得到的响应是下一个(我不明白为什么同一个url存在两个启动器,而且它们不工作)。错误日志:

获取API无法加载https://www.dominio.com/amp/include/listado.php?__amp_source_origin=http://www.dominio.com.从https://www.dominio.com/amp/include/listado.php?__amp_source_origin=http://www.dominio.com到https://www.dominio.es/m/Alergologo/Albacete-Provincia/的重定向已被CORS策略阻止:访问-控制-允许-起源标头有一个值https://www.dominio.com/amp/*不等于提供的原点。因此,原产地http://www.dominio.com不允许访问。让服务器发送带有有效值的标头,或者,如果不透明的响应满足您的需求,请将请求的模式设置为'no-cors',以便在禁用CORS的情况下获取资源。

提取失败https://www.dominio.com/amp/include/listado.php?__amp_source_origin=http://www.dominio.com:无法获取

未捕获错误:表单提交失败::获取失败https://www.dominio.com/amp/include/listado.php?__amp_source_origin=http://www.dominio.com:无法获取​​​ 在北卡罗来纳报道。f、 在xhr impl上断言(log.js:295)。js:164

所以,我需要重定向到另一个页面,从AMP页面调用我正在显示的php文件,该文件必须重定向到最后一个页面。重定向无法使用此代码。

编辑:问题可能是CORS策略,但我已将这一行添加到htaccess文件中,并保持不起作用。

<IfModule mod_headers.c>
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$">
        Header set Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>

编辑2:修改标题:

ob_start();
header("Content-type: application/json");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: https://www.dominio.com/amp/*");
header("AMP-Access-Control-Allow-Source-Origin: https://www.dominio.com/amp/*");
header("Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin");

错误:

获取API无法加载https://www.dominio.com/amp/include/listado.php?__amp_source_origin=http://www.dominio.com.重定向自'https://www.dominio.com/amp/include/listado.php?__amp_source_origin=http://www.dominio.com“到”https://www.dominio2.es/m/Alergologo/Alicante-Provincia/'已被CORS策略阻止:'Access Control Allow Origin'标头具有值'https://www.dominio.com/amp/*'这不等于提供的原点。起源'http://www.dominio.com因此,不允许访问。让服务器发送带有有效值的头,或者,如果不透明响应满足您的需要,则将请求的模式设置为“no cors”,以获取禁用cors的资源。

编辑3:已解决

允许COR的收割台平齐解决了这个问题。它们必须添加到所有受影响的域中。

header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: https://www.dominio.com/amp/*");
header("AMP-Access-Control-Allow-Source-Origin: https://www.dominio.com/amp/*");
header("Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin");

共有2个答案

田德运
2023-03-14
    REPLACE,
    header ("Location: $ulr");
    die();
    WITH,
    header ("Location: $ulr");
    ?>
    <script type="text/javascript">
    location.href = '<?php echo $ulr ?>';
    </script>
    <?php
    die();
颜高朗
2023-03-14

解决方案添加到帖子中,编辑3。

允许COR的收割台平齐解决了这个问题。它们必须添加到所有受影响的域中。

header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: https://www.dominio.com/amp/*");
header("AMP-Access-Control-Allow-Source-Origin: https://www.dominio.com/amp/*");
header("Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin");
 类似资料:
  • 问题内容: 不知道为什么这不起作用。这是代码: 而不是重定向页面,此输出到网页。它跳过了重定向。为什么?我怎样才能解决这个问题?page1.php是一个实际页面,与当前页面位于同一文件夹中。上面的代码是php文件的第一行。没什么 没有。甚至没有空格。 问题答案: Pekka在评论中回答了我的问题。他没有发布答案,所以我现在是。标头重定向后使用此方法。由于某种原因,页眉的其余代码在header()方

  • 我是相当新的PHP,我做了一些研究,并尝试了别人的解决方案,但它不适合我。我想在执行特定代码后将用户重定向到另一个页面。我意识到没有错误信息,网站不会改变。所以我从代码中删除了几乎所有的内容,并将其放入一个小test.php文件中。同样的问题依然存在。 期望:页面应该立即执行php脚本,并将我重定向到“www.w3schools.com”。应该没有错误或其他消息。 结果:页面显示并加载html代码

  • 问题内容: 这是我的档案。我想使其重定向,但是什么也没有发生。为了查看发生了什么,我在标题部分之前添加了回显。 它既不会引发错误,也不会重定向到index.php。怎么了?我已打开/关闭输出缓冲,但是没有任何东西可以使其重定向。我能做什么? 谢谢 问题答案: 我提醒自己,我已经在实际的测试环境中安装了xDebug,在对其进行了搜索之后,我发现了以下站点:http ://bugs.xdebug.or

  • 问题内容: 请不要介意这是一个愚蠢的问题, 是否有可能在php中使用新标签页打开一个窗口 问题答案: 不,不可能。标头将仅在当前窗口/选项卡中重定向当前页面。

  • 问题内容: 我知道它不需要两次获取数据。但是我的主要问题是如何在PDO中重置光标位置? 问题答案: AFAIK无法使用PDO重置光标位置-这可能与某些数据库的兼容性有关,这些数据库不支持重置内部光标。 如果要对结果进行两次迭代,请将其提取到数组并在此数组上进行迭代: 编辑 某些数据库支持可滚动游标。要使用该标记,请向方法添加标记(请参见PDOFetch文档页面上的示例)。但这只会增加前进或后退的可

  • 我想将所有可能的url组合重定向到单个路径。 例如。 http:/例如。com--- https:/例如。com-- 超文本传输协议/example.com/abc/cde 我可以按照mod_rewrite设置处理1和3的情况,但不能执行2重定向,这有人可以帮我。 为了避免链接转换,我在网站示例中使用了escape one/in。 重新启动引擎 重写Cond%{HTTPS}关闭 重写Cond%{H