1

我添加了这条规则

RewriteRule ^(.*)-[0-9]+/$ /$1/ [L,QSA] 

从 WordPress 网站上的 url 中删除以连字符开头的尾随数字

# 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>

但这似乎没有用,对我来说,正则表达式似乎没问题,但我认为它与其他规则冲突

4

2 回答 2

1

你可以试试这个:

# 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从 [R=301,L] 中删除。

于 2013-02-01T04:14:31.460 回答
0

重定向匹配 301 ^(.*)-[0-9]+/?$ $1/

于 2015-07-31T20:09:50.730 回答