Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mod_rewrite-如何将旧URL重定向到新URL_Url_Mod Rewrite_Friendly Url_Isapi Rewrite - Fatal编程技术网

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

Mod_rewrite-如何将旧URL重定向到新URL,url,mod-rewrite,friendly-url,isapi-rewrite,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%20

我需要抓取一些我的网站的旧网址,并做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

从旧的URL中,我需要检查用户是否键入ExibeCurso.asp;那我就知道我必须把他送到这里来。我还必须获取querystring参数codCurso 136中的整数。我必须使用的正则表达式是什么。我使用的是ISAPI_Rewrite 3,它基本上在IIS上实现了htaccess,所以在语法方面应该没有区别。谢谢。

在我的脑子里,像这样的东西应该有用:

RewriteRule ^ExibeCurso.asp(.*)$ http://www.mywebsite.com/curso/$1 [L,R=301]
这至少会将流量发送到/curso/并附加所有参数。也许最好从那里开始处理。

试试这个规则:

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

但是我不确定ISAPI重写是否要求模式以斜杠开头。

嗨,谢谢,我在看到你的帖子之前解决了这个问题,它非常像你的答案。谢谢!顺便说一下,我总是和正则表达式混淆。这是在做什么?告诉系统选择除a&之外的任何内容,然后在codCurso querystring参数之前获取-?谢谢。嗯,我认为ISAPI重写的工作原理就是这样。。。阿布拉索斯。