【问题标题】:remove trailing number from url via .htaccess通过 .htaccess 从 url 中删除尾随数字
【发布时间】:2013-01-31 21:26:23
【问题描述】:

我添加了这条规则

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>

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

【问题讨论】:

  • 我建议将该规则置于该规则之前
  • URL 上是否有您的规则指定的斜杠?
  • 是的,末尾有一个斜线,但并不总是一个数字

标签: wordpress .htaccess mod-rewrite


【解决方案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,L] 中删除 R=301

【讨论】:

  • 谢谢你的解释,我试试看
  • 嗨,你能告诉我如何删除完全相同的东西,但前提是尾随数字超过 6 个?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2013-04-23
    • 2021-06-25
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多