【问题标题】:url rewriting gives "object not found" errorurl 重写给出“找不到对象”错误
【发布时间】:2014-05-09 09:25:33
【问题描述】:

下面是我的原网址

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]

【问题讨论】:

    标签: php .htaccess mod-rewrite


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 向这位天才致敬,这个问题毁了我的 3 个小时
    猜你喜欢
    • 1970-01-01
    • 2020-10-06
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    相关资源
    最近更新 更多