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 に答える