我想将某种模式的网址(从旧网站)重定向到我们正在使用的更简单,更新的html版本。
旧网址如下所示:
http://example.com/Collections.asp?Collection=My Collection
......理想情况下,他们会被重定向到:
http://example.com/my-collection.html
所以我们有最后一个可变的单词,可以是一个单词,多个带空格的单词,多个带有“ - ”的单词(带连字符的单词链)或简单的数字,如“3”。
我对正则表达式很新,需要一些帮助来管理它。
我尝试过:
RedirectMatch 301 /Collections.asp?Collection=(.*) /$1.html
......没有运气,还有其他一些变化。
如何获取该变量字并使其适合我的新网址结构?
感谢您的帮助,
答案 0 :(得分:1)
您无法在RedirectMatch指令中使用查询字符串,使用mod_rewrite:
RewriteEngine On
RewriteCond %{THE_REQUEST} /Collections\.asp\?Collection=([^\s]+) [NC]
RewriteRule ^ /%1.html [NC,L,R]