Mod_rewrite - 如何301将旧URL重定向到新URL

时间:2009-07-11 02:51:11

标签: url mod-rewrite friendly-url isapi-rewrite

我需要抓住我网站的一些旧网址,然后执行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,因此在语法方面应该没有区别。感谢。

2 个答案:

答案 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 /并附加所有参数。也许最好从那里处理它。