Htaccess将连字符更改为下划线

时间:2013-05-16 10:02:34

标签: apache .htaccess mod-rewrite

我已经更改了我的链接结构,并尝试将旧链接301添加到新链接中以阻止他们获得404s

旧链接

www.domain.comn/artistfirstname-artistsecondname/songfirstword-songsecondword

新链接

www.domain.com/mp3/artistfirstname_artistsecondname-songfirstword_songsecondworld.html

我正在尝试重写旧链接以指向新链接,但我需要将第一个链接中的破折号更改为下划线,以便我可以执行类似

的操作
RewriteRule ^(.*)/(.*)$ mp3/$1-$2.html

还需要考虑只有1个单词的艺术家和歌曲,这意味着他们不会在网址中留下破折号。

1 个答案:

答案 0 :(得分:0)

尝试:

RewriteCond %{REQUEST_URI} !^/mp3/
RewriteCond %{REQUEST_URI} ^/([^/]+)/([^/]+)$
RewriteRule ^(.*)-(.*)$ /$1_$2 [L]

RewriteCond %{REQUEST_URI} !^/mp3/
RewriteCond %{REQUEST_URI} !\-
RewriteRule ^([^/]+)/([^/]+)$ /mp3/$1-$2.html [L,R=301]

第一条规则将使用下划线迭代替换短划线,但不会重定向。第二条规则确保所有短划线都消失了,然后重定向,/被短划线替换。