我将我的网站从本地移动到服务器,而我的.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
答案 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相同。因此,重定向现在按预期工作。