apache mod_rewrite规则匹配但返回404错误

时间:2016-02-25 23:08:48

标签: apache mod-rewrite http-status-code-404

我正在使用来自godaddy的共享linux主机方案,试图让mod_rewrite工作。网址/products/4应显示/products/?id=4处的页面,但它会返回404文件未找到错误。

这是products文件夹中的.htaccess文件:

Options -Multiviews

RewriteEngine On
RewriteRule "products/([0-9]+)/" "products/index.php?id=$1" [L]

任何日志都没有错误。为什么这不起作用,这是我做错了什么?

2 个答案:

答案 0 :(得分:0)

您必须定义模式的开始和结束,例如:

RewriteRule "^search/(.*)$" "/search.php?term=$1"

答案 1 :(得分:0)

经过一段时间的休眠后想出来(事实证明,这是必要的)。将脚本移至/products/index.php/products.php,并将以下内容放入/.htaccess

RewriteEngine On
RewriteRule "^products/([0-9]+)/?$" "products.php?id=$1" [L]

现在/products/{id}被正确地重写为/products.php?id={id}