奇怪的行为 - $ _SERVER ['SCRIPT_NAME']值返回404.php

时间:2012-05-23 18:50:44

标签: php .htaccess unix

我遇到了一个非常奇怪的事情。我最近在.htaccess文件中添加了以下行:

ErrorDocument 404 /404.php

这是文件中的唯一行。

我有一个php函数,当用户访问网站时,会记录$ _SERVER ['SCRIPT_NAME']的值,以便跟踪他们在网站上访问的条目网址和路径。 在添加.htaccess行之前,$ _SERVER ['SCRIPT_NAME']的值一直都是正确的。现在,当用户访问该站点时,它将404.php显示为$ _SERVER ['SCRIPT_NAME']的值。当他们转到另一个页面时,页面名称在$ _SERVER ['SCRIPT_NAME']中第一次正确,但随后将该值替换为404.php。

任何想法会导致什么?

1 个答案:

答案 0 :(得分:0)

显然在hostgator.com上,他们的服务器默认404页面设置为404.shtml。

因此,为了解决这个问题,我将以下内容添加到我的.htaccess文件中:

RewriteEngine on
RewriteRule ^(.*)\.shtml$ $1.php