301使用正则表达式重定向:ASP到HTML

时间:2015-09-20 21:28:47

标签: regex .htaccess redirect url-redirection

我想将某种模式的网址(从旧网站)重定向到我们正在使用的更简单,更新的html版本。

旧网址如下所示:

http://example.com/Collections.asp?Collection=My Collection

......理想情况下,他们会被重定向到:

http://example.com/my-collection.html

所以我们有最后一个可变的单词,可以是一个单词,多个带空格的单词,多个带有“ - ”的单词(带连字符的单词链)或简单的数字,如“3”。

我对正则表达式很新,需要一些帮助来管理它。

我尝试过:

RedirectMatch 301 /Collections.asp?Collection=(.*) /$1.html

......没有运气,还有其他一些变化。

如何获取该变量字并使其适合我的新网址结构?

感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

您无法在RedirectMatch指令中使用查询字符串,使用mod_rewrite:

RewriteEngine On
RewriteCond %{THE_REQUEST} /Collections\.asp\?Collection=([^\s]+) [NC]
RewriteRule ^ /%1.html [NC,L,R]