【问题标题】:Mod Rewrite Page Not Found未找到 Mod 重写页面
【发布时间】:2019-12-24 21:11:01
【问题描述】:

这应该很容易,但我无法让它工作。

我想要这个网址:

local.thissite.com/dashboard/blog/123/12

前往:

local.thissite.com/dashboard/post.php?id=12&bid=123

这是我的 .htaccess 文件:

RewriteEngine On
RewriteRule ^dashboard/blog/([a-z0-9]{3,24})/([0-9]{1,6})$ /dashboard/blog-post.php?id=$2&bid=$1 [NC]

我刚刚收到 404 Not Found 错误

The requested URL /dashboard/blog/123/12 was not found on this server.

【问题讨论】:

  • 尝试RewriteRule ^dashboard/blog/([a-z0-9]{3,24})/([0-9]{1,6})$ 并确保空格和/dashboard/post.php?id=$2&bid=$1 [NC] 紧随其后,而不是换行
  • Stack Overflow 里有一个空格
  • 这是不正确的。 Stack Overflow 不包装代码部分。
  • 好的,我添加了新行,因此无需滚动即可看到它。现在已经修好了。
  • 我假设测试站点使用的是最新的 Apache htaccess 逻辑,因此如果您的服务器是 Apache 2.2,那么您可能会遇到一些不兼容问题。您应该在 htaccess 文件中不使用任何其他规则尝试此重写规则,并删除任何父文件夹 htaccess 文件。如果您是服务器管理员,请确保没有影响您的 httpd.conf 重写规则。与往常一样,请务必检查您的日志是否有任何错误。如果你真的被卡住了,那么你可以尝试LogLevel info rewrite:trace5 来获取重写的详细信息。

标签: regex apache mod-rewrite


【解决方案1】:

问题是第一个参数的限制要求长度至少为 3。我的测试网址只有 2 位数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多