Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我有网址www.something.com/HereWeGo,我想在没有404错误的情况下访问HereWeGo_Php_.htaccess_Http Status Code 404 - Fatal编程技术网

Php 我有网址www.something.com/HereWeGo,我想在没有404错误的情况下访问HereWeGo

Php 我有网址www.something.com/HereWeGo,我想在没有404错误的情况下访问HereWeGo,php,.htaccess,http-status-code-404,Php,.htaccess,Http Status Code 404,考虑一下URL www.something.com/HereWeGo。当有人输入url时,该站点显示404错误,因为该目录不存在。我可以解析URL以获取查询和HereWeGo,但无法阻止它出现404错误 如果现在可以避免.htaccess,那么如何通过PHP实现呢 谢谢 Jean您可以对该特定文件夹使用mod_rewrite,也可以使用自己的自定义404页面(read)。IIRC,设置自定义404(和其他web服务器错误)是web服务器环境的一部分。除非更改apache(或其他web服务器),否

考虑一下URL www.something.com/HereWeGo。当有人输入url时,该站点显示404错误,因为该目录不存在。我可以解析URL以获取查询和HereWeGo,但无法阻止它出现404错误

如果现在可以避免.htaccess,那么如何通过PHP实现呢

谢谢
Jean

您可以对该特定文件夹使用mod_rewrite,也可以使用自己的自定义404页面(read)。

IIRC,设置自定义404(和其他web服务器错误)是web服务器环境的一部分。

除非更改apache(或其他web服务器),否则无法避免.htaccess重定向将404错误重定向到自己的*.php文件而不是默认错误消息的配置。

您需要重写URL,以便
/something
指向
index.php?q=/something
,问题是,如果找不到文件/目录,并且没有与其相关的
重写规则,即使您可以从错误页面解析URL并找到所需的信息,web服务器默认情况下也会抛出404

您不能使用
.htaccess
的原因是否合理?如果可以的话,我强烈建议你使用它。不仅仅是因为目前404意味着谷歌不会为你的页面编制索引


将帮助您。

这是您需要在Web服务器上的
.htaccess
文件中配置的内容。查看
重定向
重写
的语法。仅在PHP中不可能做到这一点,因为它是处理URL请求的Web服务器。

您必须设置一个PHP文件,例如
404.PHP
作为404错误处理程序文件。完成此操作后,在
404.php
中生成如下代码:

if (stristr($_SERVER["REQUEST URI"],"HereWeGo")
{
//add handling code here
}
您无法避免“触碰”.htaccess,至少在将所有请求重写到单个文件(或定义默认404文件)时是如此。服务器使用的是Apache,而不是PHP,对吗

以Kohana 3 Framework为例(以及大多数其他框架),所有请求都被重写为index.php文件,然后由该文件处理请求的路由

RewriteRule .* index.php [L]
下面的代码将处理用404响应的所有内容并重定向它

ErrorDocument 404 /somefile.php

然后,在somefile.php中,您可以检查referer是否为“local”($\u SERVER['HTTP\u referer']),以及它是关于哪个查询字符串的,并以您想要的任何方式进行响应。

在目标页面上,只需调用--


--覆盖默认的404状态代码。

假设HereWeGo有任何radom
header('HTTP/1.0 200 OK');