需要帮助创建重写规则

时间:2016-03-12 05:57:01

标签: php apache .htaccess mod-rewrite

感谢您抽出宝贵时间阅读我的问题!

我目前拥有一家拥有超过4000个网址的大型电子商务商店。我们正在完成对该网站的全新,重新平台版本的开发,不幸的是,这导致我们所有产品的URL格式发生了变化。

我不太熟悉用于创建RewriteRule以处理下面场景的语法。如果你能帮助我,我将不胜感激!

之情况:

原始网址:http://www.example.com/p-22-some-product-seo-name.aspx

此网址需要转换为...

新网址:http://www.example.com/some-product-seo-name

请注意,需要删除原始网址的第一部分(p-xx-)。其中xx是旧网址中使用的产品ID。该ID不总是2位数,长度可以是1-8位,具体取决于产品。

此外,需要从网址末尾删除.aspx,只留下带连字符的SEO名称。

我尝试过以下(以及它的许多变体),但无济于事!

RewriteRule ^p-([^-]*)-([^-]*)\.aspx$ /$2 [R=301, NC]

1 个答案:

答案 0 :(得分:1)

您的表达式应更改为以下内容:

^p-([\d]{1,8})-([\w-]+)\.aspx$

第一次捕获允许1到8位数,第二次捕获允许使用字母数字字符,下划线和连字符。