Mod_rewrite - как 301 перенаправить старый URL на новый - PullRequest
0 голосов
/ 11 июля 2009

Мне нужно получить некоторые из старых URL-адресов моего веб-сайта и перенаправить 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»; тогда я знаю, что должен отправить его сюда: / curso. Я также должен получить целое число, которое было в параметре строки запроса "codCurso" (136). Какое регулярное выражение я должен использовать для этого. Я использую ISAPI_Rewrite 3, который в основном реализует htaccess на IIS, поэтому не должно быть никакой разницы с точки зрения синтаксиса. Спасибо.

Ответы [ 2 ]

1 голос
/ 11 июля 2009

Попробуйте это правило:

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

Но я не уверен, требует ли ISAPI Rewrite шаблон, начинающийся с косой черты.

0 голосов
/ 11 июля 2009

С макушки головы, что-то вроде этого должно работать:

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

Это, по крайней мере, отправит трафик в / curso / со всеми подключенными параметрами. Может быть, лучше всего обработать это оттуда.

...