我有一个我在过去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代码,所有其他页面除了我的索引页面之外都有用,有什么想法会发生这种情况吗?
它在我的localhost上工作正常
更新
我可以访问domain.com/index
和domain.com/index.php
并且它们工作正常,就在我访问domain.com
时,它无法正确解析
答案 0 :(得分:2)
看起来服务器的设置正在弄乱DirectoryIndex选项 - 它试图找到"最接近的"文件,但不运行php引擎。是的,它听起来很奇怪",但是尝试将此字符串添加到.htaccess:
DirectoryIndex index.php
ps:我在评论中写的另一件事 - 一个RewriteRule就足够了:RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?p=$1