【问题标题】:How to remove only part of URl string using apache url rewrite?如何使用 apache url rewrite 仅删除部分 URl 字符串?
【发布时间】:2012-08-14 00:38:04
【问题描述】:

我有数千个如下所示的 URL:

http://www.domain.com/here-is-a-product-ab00007a1.html

网址末尾(.html 之前)的数字是 SKU。该网站最近重新启动,这些数字不再存在于 URL 中。

我想将所有这样的 URL 重定向到不包含 SKU 的新版本,例如:

http://www.domain.com/here-is-a-product.html

任何帮助将不胜感激!谢谢。

===== 编辑 =====

实际的sku格式是这样的:

aa00000a00

总是有2个字母,后面跟着5个数字,后面跟着1个字母,后面跟着2个数字 >.

sku 总是 10 个字符长。

【问题讨论】:

  • 那么SKU和产品中的最后一个字有什么区别吗?就像 SKU 总是以数字结尾?
  • 是的,sku 总是相同的格式。以两个字母开头,有一系列数字,然后有一个字母和一个数字结尾。
  • 仅供参考,sku 的原始示例并不精确,因此我编辑了问题。请参阅编辑。

标签: regex apache url-rewriting


【解决方案1】:

尝试将其放入文档根目录的 htaccess 文件中:

RewriteEngine On
RewriteRule ^(.*)-[a-z]{2}[0-9]{5}[a-z][0-9]{2}\.html$ /$1.html [L,NC]

如果您愿意,您也可以将它放在您的虚拟主机/服务器配置中,只需从规则的目标中删除前导斜杠,这样它就很简单:$1.html

【讨论】:

  • 完美运行!我必须添加一个 R=301 来解决它,但除此之外它是完美的!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多