几个月来,我在 Media Temple DV 服务器上运行了多个稳定的网站,没有出现任何问题。昨晚大约 9 点(CST),我的几个网站突然开始出现故障,并显示 Fedora 错误登录页面。当我联系 Media temple 支持时,他们声称这是由于 .htaccess 文件指向不正确造成的。
经过我自己的研究,我认为这是完全不准确的,理由如下:
1)从下午 6 点到错误发生时,我们的服务器上没有任何变化(无论是文件还是配置)
2).htaccess mod_rewrite 在 httpd.conf 文件上正确启用,并且已经验证多次,并完全重新启动了 apache 服务器。
3) 如果您浏览我的网站,您会发现 .htaccess 文件确实按预期工作(www.aabbenefits.com/home 进入的页面实际上是 home.php)。单击页面上的链接,所有文件扩展名都保留下来,这是应该的。同样,输入错误的 URL 会生成我的自定义 404 页面(由 .htaccess 文件处理)。
4) 浏览 www.aabbenefits.com 根本无法找到 index.php(但如果您输入 www.aabbenefits.com/index.php 则会找到)。
查看 apache 错误日志,我发现访问 www.aabbenefits.com 时返回以下错误:
Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www....
这让我认为 apache 配置文件中再次出现了错误,但事实并非如此:
LoadModule rewrite_module 已取消注释
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride All
Order allow, deny
Allow from all
</Directory>
我的.htaccess 文件是:
ErrorDocument 404 /404.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
我完全不知该说什么了,真的需要让我的服务器恢复运行,因为明天就要开始大规模的注册了,这件事发生的时机太不合适了。
我正在通过 Media Temple 在 apache php/mysql 配置上运行 CentOS 5.5。
请告诉我有人可以识别出我遗漏了什么或者之前遇到过这个问题。
### 解决了 ###
好吧,我不知道为什么这个问题会出现,修复实际上起了什么作用或者到底发生了什么,但是我通过以下方式“解决”了我的问题:
我修改了以下文件:
vi /etc/httpd/conf.d/welcome.conf
然后我注释掉页面上的所有行,保存文件,重启服务器,然后就好了。我想说我松了一口气,但我更生气的是,我不明白这件事是怎么发生的,为什么会发生。
我将问题留待以后再回答,以防有人能解决。最后想一想,Fedora 页面出现在 CentOS 安装上是否没有什么意义?
答案1
您可能已将每个服务器配置的 DirectoryIndex 设置为默认登录页面。如果您在 vhost/directory/.htaccess 配置中将目录索引定义为 index.php,则重写默认设置可能也能解决问题。
答案2
虽然似乎没人能确定原因 - 在我编辑上述评论后,.htaccess 文件似乎确实有效。我想我只能接受它本来的样子,永远不知道为什么!