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


Strange Behaviour - $_SERVER['SCRIPT_NAME'] value returning 404.php

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

ErrorDocument 404 /404.php

这是文件中唯一的行。

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

任何想法会导致这种情况吗?

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

因此,为了纠正此问题,我将以下内容添加到我的.htaccess文件中:

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