一个很久没看的Oscommerce网站突然不能访问,看了错误日志,网站一直都在报一个错误

Failed opening required 'includes/languages/.php … includes/application_top.php on line 286

require()命令导致fatal error,网站毫无悬念的挂了。

开始检查,session里的变量值都是空的,查看服务器的session配置,貌似没什么问题。配置文件和以前一样,也没问题。也没有被hack的迹象,只能怀疑是数据库的数据有问题了。

查看跟语言有关的设置:

DEFAULT_LANGUAGE  – en, 貌似没什么问题

查看languages表,里面记录了网站上可是切换的语言,默认一般是english,发现问题了

english语言对应的Code不是‘en’而是‘En’,就一个字母错误整个网站就挂了,太敏感了点吧。

折腾了下发现,configuration表中的DEFAULT_LANGUAGE设置成什么基本没影响。而Languages的设置至关重要,这项可以在后台->Localization->Languages里更改,不知道谁把语言代码写错了,才让网站挂掉。