我遇到了一个过去10年从未遇到过的奇怪问题,请帮忙。
我正在为一个客户端开发一个非常简单的网站,他们有一个共享主机LAMP堆栈,我使用的是这样的.htaccess文件。。。
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?p=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?p=$1
所以我可以访问像domain.com/contact
这样的页面,它会直接进入domain.com/?p=contact
,但在索引页面上,domain.com
不会正确解析PHP,如果我查看源代码,我可以在这个页面上看到我的实际PHP代码未解析,除了我的索引页面外,所有其他页面都可以工作,你知道为什么会发生这种情况吗?
它在我的本地主机上运行良好
更新
我可以访问domain.com/index
和domain.com/index.php
,它们运行良好,只是当我访问domain.com
时,它不能正确解析
看起来服务器的设置扰乱了DirectoryIndex选项-它试图找到"最接近"的文件,但没有为其运行php引擎。是的,这听起来很"奇怪",但尝试将此字符串添加到.htaccess:
DirectoryIndex index.php
ps:我在评论中写的另一件事——一个RewriteRule就足够了:RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?p=$1