url重写会出现“找不到对象”错误

时间:2014-05-09 00:21:09

标签: php .htaccess mod-rewrite

以下是我原来的网址

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

重写规则

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

新网址

http://localhost/mysite/article/84

当我使用new url时,会出现Object not found错误。好像我的重写规则不起作用。如果我正确使用规则或需要更改,需要你的帮助。

注意:

我也在使用其他规则来隐藏扩展名。

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

1 个答案:

答案 0 :(得分:3)

您使用的是绝对路径,但/mysite/不是文档根目录,因此无效。删除前导斜杠以使用相对路径,你应该很好。

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

由于它是内部重定向,您还可以安全地添加.php扩展程序,以防您知道这是您要定位的文件,这样可以避免对丢失的扩展程序进行额外的重写。

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