2010-03-16 2 views
4

url에 확장자가없는 경우 다음과 같은 다시 쓰기 규칙을 사용하여 .aspx 확장자를 추가합니다. URL의 정규 표현식 IIS7 용 다시 쓰기 모듈

 <rule name="SimpleRewrite" stopProcessing="true"> 
     <match url="^(.*(?&lt;=/)([^/.]*))$" /> 
     <action type="Rewrite" url="{R:1}.aspx" /> 
    </rule> 

규칙이 작동하지 않습니다하지만이 :

Error HTTP 500.52 - URL Rewrite Module Error. 
The expression "^(.*(?<=/)([^/.]*))$" has an invalid syntax. 

그러나이 정규 표현식은 .NET에서 작동합니다. IIS 정규 표현식이 지원하는 정규 표현식은 무엇입니까? 긍정적 인 lookbehind 단언을하는 방법?

+0

당신은 왜 명확하게 할 수 확장 성없는 요청을 위해 .aspx를 추가하기위한 복잡한 규칙? 이 부분은 무엇입니까 (? < = /)? – TonyCool

+0

어쩌면 너무 복잡해 보이지만, 확장자가 없는지 어떻게 확인할 수 있습니까? –

답변

2

아마도 .*/[^/.]+$은 귀하의 요구에 부합합니까?

편집 (응답이 언급) : 재 작성은 ".aspx로 {0 R}"이 될 것입니다 당신은 간단한 파일 이름을 포함 할 경우, 당신이 쓸 수

^(.*/)?[^/.]+$ 
+0

Thx, 내 정규식이 유효하다는 것을 알았지 만 정확하지 않다. 마침내 나는 결국 ^. */[^ /.] + $ |^[^ /.] + $'로 끝난다. –

1

정규 표현식을 필요로하지 않는 문제에 대한 간단한 해결책이있는 것처럼 들리지만 그렇지 않은 경우 도움이 될 것입니다.

빠른 : 복잡한 정규 표현식의 경우 ISAPI_Rewrite Lite과 같은 모듈 다시 쓰기 복제 IIS 플러그인을 사용해보십시오.

: 년 정도 전에 나는 드루팔 사이트의 ISS 배포,하는 모든 초등, 중등과에 나는 차 링크가 드루팔에 의해 처리 할 수 ​​있었지만, 깊은 레거시 내용에했는데 생각했다 (Drupal 404에 인수되지 않고) 정상적으로 제공 될 수 있습니다.

아파치 mod_rewrite의 "포트"(호환 구문)를 사용하여 레거시 콘텐츠와 drupal 간의 연출을 수행했으며 일련의 재 작성 필터와 URL에 일치하는 콘텐츠를 확인하는 규칙을 레거시 폴더에서 Drupal이 나머지를 처리하게합니다.

http://www.helicontech.com/isapi_rewrite/

ISAPI_Rewrite Lite는 무료이며, 내가 필요한 모든 기능을 가지고 있었다. 헬리콘을 구입하면 IIS 용 Mod-Rewrite 클론 플러그인을 만든 유일한 회사가 아닙니다.

+0

감사합니다. IIS URL rewriter 모듈로 충분하므로 표현을 단순화했습니다. –