문제

내 웹 사이트의 이전 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. 또한 QueryString 매개 변수 "Codcurso"(136)에 있던 정수를 가져와야합니다. 내가 이것에 사용해야하는 정규 표현은 무엇입니까? 기본적으로 IIS에서 HTACCESS를 구현하는 ISAPI_REWRITE 3을 사용하고 있으므로 구문 측면에는 차이가 없습니다. 감사.

도움이 되었습니까?

해결책

이 규칙을 시도하십시오.

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

그러나 ISAPI를 다시 쓰는 데 패턴이 슬래시로 시작 해야하는지 확실하지 않습니다.

다른 팁

내 머리 꼭대기에서 이와 같은 것이 효과가 있어야합니다.

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

그것은 모든 매개 변수를 첨부 한 상태에서 / curso / / curso /로 트래픽을 보냅니다. 어쩌면 거기에서 처리하는 것이 가장 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top