Url重写导致“未找到对象”;错误


url rewriting gives "object not found" error

下面是我的原始url

http://localhost/mysite/mainarticle?article_id=84

RewriteRule

RewriteRule ^/article/([0-9]+) /mainarticle?article_id=$1 [L]
新url

http://localhost/mysite/article/84

当我使用new url时,它给出Object not found错误。看来我的重写规则不管用了。如果我正确使用规则或需要更改,需要您的帮助。

注意:

我还使用了额外的规则来隐藏扩展

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^'.]+)$ $1.php [NC,L]
RewriteRule ^([^'.]+)$ $1.html [NC,L]

您正在使用绝对路径,但/mysite/不是文档根,因此这不起作用。删除前导斜杠以使用相对路径,这样就可以了。

RewriteRule ^article/([0-9]+) mainarticle?article_id=$1 [L]

由于它是一个内部重定向,您还可以安全地添加.php扩展名,以防您知道这是您的目标文件,这将避免为丢失的扩展名进行额外重写。

... mainarticle.php?article_id=$1 [L]