htaccess 重写规则 404 错误

Posted

技术标签:

【中文标题】htaccess 重写规则 404 错误【英文标题】:htaccess RewriteRule 404 Error 【发布时间】:2015-09-27 01:38:13 【问题描述】:

我想更改这个网址

http://localhost/RedHat/movbase-backbone/php/sql/movie.php

进入这个

http://localhost/RedHat/movbase-backbone/movie

我尝试在我的 .htaccess 文件中创建规则,但每当我转到 /movie 时都会收到 404 错误。

这是我的规则

RewriteEngine On
#RewriteBase /
RewriteRule ^movie/?$ php/sql/movie.php [NC,L]

我已尝试将movie.php 与其他文件一起更改,以查看它们是否可以工作,但我没有遇到任何问题。

我的规则有问题吗?

【问题讨论】:

【参考方案1】:

在位于 /RedHat/movbase-backbone/.htaccess 的 .htaccess 文件中:

RewriteEngine On
RewriteBase /RedHat/movbase-backbone/
RewriteRule ^movie/?$ php/sql/movie.php [NC,L]

这假设您的文档根位于http://localhost/

您真的要同时允许moviemovie/ 吗?

【讨论】:

我的 .htaccess 位于 /RedHat/movbase-backbone/.htaccess。我正在使用 url 作为休息 api,所以我想让电影和电影/两者都工作。稍后我想要movie/:id,其中:id 是电影ID,但我可以稍后再处理。 不,这不起作用。当我尝试访问电影或电影时/我收到 404 错误。 404 错误有一个链接将我发送到包含我的 php 文件的文件夹,因此 php/sql.这是我收到的错误页面link 以上内容本身应该可以工作。这个 .htaccess 文件中还有其他指令吗?您在父目录中有其他 .htaccess 文件吗?尝试将上面的 RewriteRule 更改为临时重定向(即包括 R 标志) - 它会重定向吗? 我在 .htaccess 文件中的唯一其他指令是检查 404 错误。我只有一个 .htaccess 文件。当我包含 R 标志时,页面会重定向并正常工作。 如果 redirect(即带有 R 标志)正常工作而 internal rewrite 不能正常工作,听起来好像您的服务器-side 代码可能依赖于请求 URL?

以上是关于htaccess 重写规则 404 错误的主要内容,如果未能解决你的问题,请参考以下文章

htaccess:尝试 ErrorDocument 时出现 404 Not Found 错误

WordPress 404 模板覆盖我的 .htaccess 设置以解决 404 错误?

通过 htaccess 发送 404 错误?

在 XAMPP 中使用 .htaccess local 重写 URL

根域和子文件夹中的两个 htaccess 中的 404 问题

为 Apache 重写规则没有找到 URL?