如何使用.htaccess从URL末尾删除一个数字?

时间:2014-12-18 12:24:20

标签: regex apache .htaccess mod-rewrite redirect

我有很多以-xxx结尾的URL,其中xxx是介于000和999之间的数字。 例如:

http://a.com/imagea-000
http://a.com/category1/imageb-002
http://a.com/category1/category2/imagec-999

如何在.httaccess中指定RewriteCond / RewriteRule来删除数字,包括网址末尾的“ - ”?所以最终的URL看起来像:

http://a.com/imagea
http://a.com/category1/imageb
http://a.com/category1/category2/imagec

1 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On

RewriteRule ^(.+?)-\d+/?$ /$1 [L,R=302]
  • -\d+/?$将匹配连字符后跟1或数字以及URI末尾的可选斜杠。
  • (.+?)将匹配上述模式之前的任何内容并将其捕获为组#1
  • 验证工作正常后,将R=302替换为R=301。在测试mod_rewrite规则时,请避免使用R=301(永久重定向)。