重写规则更改URL结构

时间:2013-05-05 20:20:59

标签: php .htaccess

我正在尝试将旧页面重定向到我新更新的链接结构页面,因为旧版本现在正在提供404

domain.com/artist-some-name

domain.com/artist/some_name.html

将某个名称之间的 - 和_放在那里而不是空格 所以基本上我想用/我可以用

替换-seperator
RewriteRule ^artist-(.+)$ /artist/$1.html [R=301,L]

但我无法理解如何将some-name更改为some_name以便正确重定向

EDIT     RewriteRule ^ artists - (。+) - (。+)$ /artist/$1_$2.html [R = 301,L]     RewriteRule ^ artists - (。+)$ /artist/$1.html [R = 301,L]

这似乎适用于url中的空格

2 个答案:

答案 0 :(得分:0)

RewriteRule ^ artist - (。+) - (。+)$ /artist/$1_$2.html [R = 301,L]

答案 1 :(得分:0)

尝试一下:

RewriteRule ^artist-([a-z]+)-([a-z]+)$ /artist/$1_$2.html [NC,R=301,L]
RewriteRule ^artist-([a-z]+)$ /artist/$1.html [NC,R=301,L]

您需要限制通配符,以便只包含字母。如果您需要包含数字(正则表达式中的“数字”),则可以在0-9旁边添加a-z。或者,您可以使用\d+,简称。