it-gundan.com

URL 재 작성을 구현하는 가장 빠르고 쉬운 방법은 무엇입니까?

another question 관련 사항-최대한 빨리 URL을 다시 작성해야하는 경우 사용 속도를 높이는 방법은 무엇입니까?

2
Mark Henderson

우리는 8 시간 이내에 수백 개의 제품을 관리했습니다. 시나리오는 다음과 같습니다.

우리는 가지고 있었다 :

  • 의미없는 매개 변수로 채워진 개 못생긴 URL
  • 사내 개발자
  • SQL 데이터베이스 및 스키마에 대한 모든 액세스
  • IIS6/ ISAPI Rewrite (그러나 우리는 다른 사람들을 위해 이것을 할 수있었습니다)

옵션 1

우리의 제품 테이블은 다음과 같습니다.

ID | Product Name | Description | etc
-------------------------------------
001|Product 1     | This is...  | etc
002|Product 1     | This is...  | etc
003|Product 1     | This is...  | etc

그래서 우리는 products 테이블을 반복하고 httpd.ini 파일 (ISAPI Rewrite의 버전 .htaccess)에 항목을 생성하는 작은 배치 프로그램을 작성했습니다. 이와 같은 수백 개의 항목 :

RewriteRule (/product-1/) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N001 [I,O,U] * 면책 조항을 참조하십시오

당사 제품은 자주 변경되지 않으므로 무언가를 추가 할 때마다 수동으로 다시 실행하면됩니다. 우아하지는 않지만 빠른/저렴한 작업입니다.

그런 다음 링크가 제품으로 인쇄되는 모든 곳에서 링크가 전체 URL로 출력되도록했습니다.

총 8 시간이 걸렸습니다.

옵션 2

다음과 같은 단일 일반 URL 재 작성 규칙 :

RewriteRule (/products/)(.*/)(.*) /DLLFolder/Requester.dll?APPLICATION=MyApp&PROGRAM=Products&ARGUMENTS=-N$3 [I,O,U] * 면책 조항을 참조하십시오

이것은 우리가 쓸 수 있음을 의미했습니다.

/products/my/thing/whatever/the/hell/i/want/123

그리고 올바른 URL로 다시 작성합니다. 그런 다음 URL 링크의 출력을 변경하기 만하면됩니다.

* 면책 조항 : 정규식 기술이 매우 녹슨 편이고 바로 그 자리에 올렸습니다. 잘못되었을 수 있습니다. 실제 정규 표현식에 대한 마일리지는 다를 수 있지만 개념은 여전히 ​​유효합니다.

2
Mark Henderson