在第0行的Unknown中打开所需的'redirect:/index.php'(include_path ='。:/ usr / lib64 / php:/ usr / lib / php')失败

时间:2012-04-02 14:53:00

标签: php apache .htaccess

我将我的网站从本地移动到服务器,而我的.htaccess中的重写规则无效。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^contact-us$ index.php?p=2
</IfModule>

这就是我在.htaccess中所拥有的。

但我确信.htaccess被服务器识别(我通过在.htaccess中放入一些垃圾来测试 - 我收到了服务器错误)。

为了进一步诊断问题,我修改了我的.htaccess,如下所示:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^contact-us$ index.php?p=2
RewriteRule contact-us$ index.php?p=2
RewriteRule ^contact-us index.php?p=2
RewriteRule contact-us index.php?p=2
</IfModule>

现在,我在访问我的site.com/contact-us

时遇到了一个奇怪的错误
Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required 'redirect:/index.php' (include_path='.:/usr/lib64/php:/usr/lib/php') in Unknown on line 0

1 个答案:

答案 0 :(得分:2)

Apache以某种方式自动将.php添加到我的URL。 (我认为是因为AddHandler)

我有contact-us.php,但我想将contact-us路由到index.php?p=2。由于Apache正在添加.php并检查contact-us.php是否存在,因此它与contact-us路由不匹配。所以我将我的文件重命名为php-contact-us.php并保持路由和我的URL相同。因此,重定向现在按预期工作。