【问题标题】:RewriteRule doesn't seem to be workingRewriteRule 似乎不起作用
【发布时间】:2016-12-05 00:23:52
【问题描述】:

我正在尝试重写

/blog/2016-10-02-my-post

/blog/post.php?s=2016-10-02-my-post

在 .htaccess 中使用 ModRewrite。我已经尝试了以下几种变体,但一直得到 404:

RewriteRule ^blog/([a-zA-Z0-9-/]+)$ /blog/post.php?s=$1 [L]s

ModRewrite 有效,因为我有一些非常简单的测试规则有效。我在上面做错了什么?

【问题讨论】:

  • 我编辑了您的帖子,因为您将/blog/2016-10-02-my-post 重写为/blog/post.php?s=2016-10-02-my-post,而不是相反。

标签: apache .htaccess mod-rewrite


【解决方案1】:

[L]s 正在捐赠:RewriteRule: bad flag delimiters

此外,规则需要以^/ 开头。所以这行得通:

RewriteRule ^/blog/([a-zA-Z0-9-/]+)$ /blog/post.php?s=$1 [L]

【讨论】:

  • 此规则将从不匹配,因为它以^/ 开头。在 RewriteRule 中测试的 URL 去掉了前导斜杠。除了标志之外,OP 重写是正确的。
  • 你是对的。我错过了.htaccess 部分(我在VirtualHost 中测试过)。
猜你喜欢
  • 1970-01-01
  • 2020-05-02
  • 2011-08-18
  • 2016-11-29
  • 2016-02-01
  • 2020-09-23
  • 2010-12-05
  • 2011-06-14
  • 2015-01-10
相关资源
最近更新 更多