1

我刚刚将一个站点从 Joomla 迁移到 WordPress,一切正常,但我需要一个规则来从 url 中删除日期+时间块。

旧网址是这样的

domain.tld/201009081045/category/subcategory/article.html

我已经删除了 .html 部分:

#BEGIN sjebani linkovi fix
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]

#301 da izbaci html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
#END sjebani linkovi fix

我尝试用这个删除第一个数字块:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /^[0-9]{6-13}$ /$1 [R=301,L]

我的逻辑是找到只有数字长于 6 个字符且短于 13 个字符的字符串,因为我需要激活日期存档(domain.tld/2008/12/01 等)。

如何使用 mod_rewrite 删除第一个数字块?

4

1 回答 1

1

您的正则表达式有点不稳定,您需要匹配日期之后的所有内容才能使您的$1反向引用起作用:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[0-9]{6,13}/(.*)$ /$1 [R=301,L]
于 2013-10-09T03:28:37.380 回答