我遇到了一个非常奇怪的事件。我最近在我的 .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