我需要抓住我网站的一些旧网址,然后执行301重定向到新网址,因为它们已经编入索引,我们不希望在更改后失去相关性。旧的URL实际上非常难看,出于某种原因我尝试重写它的一切都行不通。这是:
http://www.mywebsite.com/ExibeCurso.asp?Comando=TreinamentoGeral&codCurso=136&Titulo=Como%20Estruturar%20um%20Sistema%20Gerencial%20de%20Controles%20Organizacionais,13
基本上,我需要将其翻译成:
http://www.mywebsite.com/curso/136
从旧网址我需要检查用户是否输入了“ExibeCurso.asp”;然后我知道我必须把他送到这里:/ curso。我还必须获取查询字符串参数“codCurso”(136)中的整数。我必须使用的正则表达式是什么。我正在使用ISAPI_Rewrite 3,它基本上在IIS上实现htaccess,因此在语法方面应该没有区别。感谢。
答案 0 :(得分:1)
尝试此规则:
RewriteCond %{QUERY_STRING} ^([^&]*&)*codCurso=([0-9]+)(&.*)?$
RewriteRule ^/ExibeCurso\.asp$ /curso/%2? [L,R=301]
但我不确定ISAPI Rewrite是否要求模式以斜线开头。
答案 1 :(得分:0)
脱离我的头脑,这样的事情应该有效:
RewriteRule ^ExibeCurso.asp(.*)$ http://www.mywebsite.com/curso/$1 [L,R=301]
这至少会将流量发送到/ curso /并附加所有参数。也许最好从那里处理它。