我刚刚将一个网站从Joomla迁移到WordPress,一切正常,但我需要一个规则来从网址中删除日期+时间块。
旧网址就像这样
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删除第一个数字块?
答案 0 :(得分:1)
您的正则表达式有点不稳定,您需要匹配日期之后的所有内容才能使$1
反向引用工作:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[0-9]{6,13}/(.*)$ /$1 [R=301,L]