我有URL www.something.com/HereWeGo,我想在没有404错误的情况下获得HereWeGo

时间:2010-04-06 08:07:27

标签: php .htaccess http-status-code-404

考虑网址www.something.com/HereWeGo。当有人输入网址时,该网站显示404错误,因为该目录不存在。我可以解析URL以获取查询和HereWeGo,但不能阻止它转到404错误。

如果可以避免使用.htaccess

,我如何通过PHP实现它

由于 让

8 个答案:

答案 0 :(得分:4)

您需要重写您的网址,以便/something指向index.php?q=/something,如果无法找到文件/目录且没有{RewriteRules,那么您的网络服务器通常会默认抛出404。 1}}与之关联,即使您可以从错误页面解析URL并找到所需的信息。

是否有正当理由不能使用.htaccess?如果可以的话,我强烈建议你使用它。尤其是因为目前404意味着Google不会将您的网页编入索引。

This article会帮助你。

答案 1 :(得分:2)

你无法避免“触摸”.htaccess,至少是为了重写所有对单个文件的请求(或定义默认的404文件)。你正在使用Apache,而不是服务器的PHP,对吗?

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

RewriteRule .* index.php [L]

下面的代码将处理以404响应并重定向的所有内容。

ErrorDocument 404 /somefile.php

在somefile.php中,您可以检查referer是否为“local”($ _SERVER ['HTTP_REFERER'])以及它所涉及的查询字符串,并以您想要的任何方式进行响应。

答案 2 :(得分:1)

您可以将mod_rewrite用于该特定文件夹,也可以使用自己的自定义404页面(阅读this article)。

答案 3 :(得分:1)

这是您需要在.htaccess文件中在网络服务器上配置的内容。请查看redirectrewrite的语法。不能仅在PHP中执行此操作,因为它是处理URL请求的Web服务器。

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

您必须设置一个php文件,例如404.php作为404错误处理程序文件。执行此操作后,404.php中的代码看起来像这样:

if (stristr($_SERVER["REQUEST URI"],"HereWeGo")
{
//add handling code here
}

答案 7 :(得分:0)

在目标网页上,只需致电 -

即可
header('HTTP/1.0 200 OK');

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