2012-11-12 3 views
1

나는 이것이 할 수 있는지 알아 내려고 애 쓰고있다. 최근에 마이그레이션 된 포럼이있어서 수천 개의 깨진 동적 링크가 남습니다.동적 URL의 수정 다시 쓰기 규칙 - 가능합니까?

일반적인 URL은 다음과 같습니다

http://domain.com/Forum_Name/b10001/25/
('b10001가'포럼 ID 번호를 참조하고, 마지막 숫자는 페이지 수를 의미합니다.)

새로운 URL이 같은 포맷 :

http://domain.com/forums/Forum_Name.10001/
. (어떤 페이지 번호는 또한 ID 번호 앞에 더 이상 인 'B'를 알 수 없다.)

이것을 달성 할 수있는 다시 쓰기 규칙이 있습니까?

답변

1

가 나는 라이터 아니지만, 내가 here을 읽은 다음,이 같은 일을해야 :

RewriteRule ^([A-Za-z0-9-]+)/b([0-9])+(/[0-9]+)?/?.*$ forums/$1.$2/ [NC,L] 

^([A-Za-z0-9-]+) 말한다 "영숫자 문자열로 시작", 다음, /b 일정이 다음의 [0-9]+ (하나 이상의 자릿수), 선택적// 하나 이상의 숫자 (페이지 번호, (/[0-9]+)?)로 끝나며 마지막에 선택적 슬래시 (/?$)로 끝납니다.

URL이 해당 패턴과 일치하면 forums/$1\.$2/으로 다시 작성됩니다. \.은 도트를 이스케이프하며 (와일드 카드) $1은 첫 번째 패턴 일치 (포럼 이름 인 첫 번째 영숫자 문자열)이고 $2은 두 번째 일치, 즉 b 다음의 숫자입니다.

마지막으로 NC은 패턴이 대소 문자를 구별하며, L이 "마지막"임을 의미하므로 다른 규칙을 처리하지 않습니다. 나는 그것이 당신까지 대부분의 생각, 당신이

편집 : 필요한 플래그 링크 된 기사를 읽고 선택 : 보정 패턴이 http://htaccess.madewithlove.be/

+0

링크 및 설명 주셔서 감사합니다. – Ben

0

와 확인을 나는 당신이 찾고있는 것은

생각
RewriteRule ^([a-zA-Z0-9_]+)/b([0-9]+)/.*$ forums/$1/$2/ 

[] 부분의 내용이 포럼 이름 및 ID에 사용중인 형식과 일치하는지 확인하십시오.

매개 변수의 경우 영구적으로 리디렉션되도록하려면 R=301이 좋습니다.

+0

앵커 해시처럼 URL 문자열 끝에 다른 것이 있으면이 구문을 사용하면 중요할까요? – Ben