重写所有未找到其他网址的网页,同时保留实际网页而不发送404错误

时间:2016-07-23 05:51:09

标签: php html .htaccess web

我正在寻找一个if脚本来判断是否在.htaccess文件中找到了一个页面!这可能看起来很奇怪,但我确信它可以解决一些问题。

我会告诉你与实例有什么关系,在1个文件夹中我想要两个文件,Cheese.php和Pizza.php!当它们位于我想要的文件夹内时,如果它们转到Cheese.php就会正常,但是如果它们落在文件夹中不存在的页面上,它将转到Pizza.php,但是Pizza.php不是404错误消息,但由php处理的其他内容。

您可能只是说使用404 DocumentError,但唯一的问题是在Internet Explorer上它没有得到Pizza.php但显示自己的404消息,而在大多数其他浏览器上它显示控制台中的错误... < / p>

我的请求看起来很奇怪,但很有意思,这是有道理的!感谢

2 个答案:

答案 0 :(得分:0)

我认为在.htaccess中使用ErrorDocument 404 /Pizza.php可能会解决您的问题。 或者请明确您使用的是什么框架?

答案 1 :(得分:0)

  

您可以说使用404 DocumentError,但唯一的问题是   在Internet Explorer上它没有得到Pizza.php但显示它   拥有404消息,在大多数其他浏览器上,它显示错误   控制台...

您收到错误的原因是,在发送错误文档时,服务器会设置404响应代码。在 .htaccess 中,执行:

ErrorDocument 404 /Pizza.php

Pizza.php 中,在将任何内容输出到浏览器之前,在脚本的早期设置响应代码。

<?php
   http_response_code(200); //tells browser that everything is OK
   ...

由于您已自行设置了响应代码,因此您的服务器不会设置404,浏览器也不会知道存在任何问题。