我添加了这条规则
RewriteRule ^(.*)-[0-9]+/$ /$1/ [L,QSA]
从WordPress网站上的网址中删除以连字符开头的尾随数字
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^(.*)-[0-9]+/$ /$1/ [L,QSA]
</IfModule>
但它似乎没有诀窍,对我来说正则表达式似乎没问题,但我认为它与其他规则冲突
答案 0 :(得分:2)
你可以试试这个:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# Additional 2 lines to remove the trailing -Number from the URL
RewriteCond %{REQUEST_URI} ^/(.*)-(?:[0-9]*)?/?$ [NC]
RewriteRule .* %1 [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
额外的2行永久重定向
http://example.com/any/number/of/folders/anything-NUMBER
要:
http://example.com/any/number/of/folders/anything
-NUMBER
组合必须是URL中的尾随字符串,带或不带斜杠。
即使没有数字,连字符-
也会被删除。如果你想保留它,请替换
RewriteRule .* %1 [R=301,L]
RewriteRule .* %1- [R=301,L]
永久重定向用于在浏览器的地址栏中显示替换URL。对于静默映射,请从[R = 301,L]中删除R=301
。
答案 1 :(得分:0)
RedirectMatch 301 ^(.*)-[0-9]+/?$ $1/