Mod_rewrite - 如何将旧网址重定向到新网址

问题描述:

我需要抓取我网站的一些旧网址,并重新定向到新网址,因为它们已经被编入索引,而且我们不想失去相关性改变之后。旧网址实际上非常丑陋,出于某种原因,我尝试重写它的所有内容都不起作用。那就是:Mod_rewrite - 如何将旧网址重定向到新网址

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 

从旧的URL我需要检查,如果用户键入“ExibeCurso.asp”;那么我知道我必须把他送到这里:/ curso。我还必须获取查询字符串参数“codCurso”(136)中的整数。什么是我必须使用的正则表达式。我使用ISAPI_Rewrite 3,它基本上实现了IIS上的htaccess,所以在语法上应该没有区别。谢谢。

试试这个规则:

RewriteCond %{QUERY_STRING} ^([^&]*&)*codCurso=([0-9]+)(&.*)?$ 
RewriteRule ^/ExibeCurso\.asp$ /curso/%2? [L,R=301] 

但我不知道ISAPI重写是否需要模式,开始以斜线。

+0

嗨,谢谢,我在看到你的帖子之前就设法解决了这个问题,它非常像你的答案。非常感谢!顺便说一句,我总是与RegEx混淆。这是干什么的([^&] *&)*?告诉系统只选择一个&,然后在codCurso查询字符串参数之前获取&?谢谢。 – 2009-07-13 02:39:56

关闭我的头顶,这样的事情应该工作:

RewriteRule ^ExibeCurso.asp(.*)$ http://www.mywebsite.com/curso/$1 [L,R=301] 

这将流量至少发送到/ CURSO /附带的所有参数。也许最好从那里处理它。