【发布时间】: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