【问题标题】:Rewrite WordPress permalink URL using mod_rewrite breaks Archive使用 mod_rewrite 重写 WordPress 永久链接 URL 中断存档
【发布时间】:2011-12-12 16:49:14
【问题描述】:

以下 mod_rewrite 规则完成了将 www.domain.com/2011/11/page 重写为 www.domain.com/page 的任务,但会破坏 www.domain.com/2011/11/(即破坏 WordPress 存档列表)并将其重定向到站点的根目录。

重写规则应该只重写内容在^([0-9]{4})/([0-9]{1,2})/page之后而不是^([0-9]{4})/([0-9]{1,2})/的项目。

RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.*)$ /$3 [NC,R=301,L]

有什么建议吗?

回答

开头缺少正斜杠:

RewriteRule ^/([0-9]{4})/([0-9]{2})/(.*)$ /$3 [NC,R=301,L]

以及所需的 WordPress 永久链接条目:

/%postname%/

代替:

%postname%

虽然我不确定后者有多大帮助。

【问题讨论】:

  • 我回答得晚了一点,但我没有足够的分数在 8 小时内回答我自己的问题。

标签: apache wordpress mod-rewrite


【解决方案1】:

我认为您需要将 * 更改为 +

RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.*)$ /$3 [NC,R=301,L]

应该是

RewriteRule ^([0-9]{4})/([0-9]{1,2})/(.+)$ /$3 [NC,R=301,L]

使用 (.),它可能不匹配任何内容,因此像“/2011/11/”这样的请求将匹配,但 (.) 的反向引用将为空白,因此重写至 ”/”。 + 表示至少需要有 1 个字符满足“.”。在正则表达式中。

【讨论】:

  • * 确实有效,虽然我无法及时回答我自己的问题,但我会给你信用 ;-)
猜你喜欢
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 2017-09-20
  • 2012-03-31
相关资源
最近更新 更多