2017-12-26 37 views
0

내가 IIS 8.5 사용하고 및 재 작성 모듈의 마지막 부분을 얻기 위해 다시 쓰기 규칙을 IIS 다음과 같은는 대시로 구분 된 파일 이름

실제 URL http://www.mywebsite.com/detail/name-of-my-product-3500.php

을 달성하기 위해 규칙을 마련하기 위해 노력하고 있어요 다시 작성 위의 예제에 대한 규칙을 만들면 다음을 얻을 수 있습니다. http://www.mywebsite.com/detail/?id=3500

IIS로 변환 할 수 있으므로 .htaccess 환경에서 동일한 예제를 공유하는 사람이라면 누구나 만족할 것입니다.

그래서 본질적으로 내 Web.config의 규칙은

(항상 숫자 예정) 1 만 파일 이름의 마지막 부분을 끌어 오기/세부에서 디렉토리 2. 요구 사항을 적용 두 가지를 달성하기 위해 필요 followign은 내가 생각해내는 것이다. 그러나 이것은/detail 디렉토리 내에서 이것을 제외하고는 다른 모든 url에 문제를 일으킨다.

<rule name="Redirect to detail" stopProcessing="true"> 
       <match url="([^-]+)\/?$" ignoreCase="false" /> 
       <action type="Rewrite" url="/detail/?npid={R:1}" appendQueryString="false" logRewrittenUrl="true" /> 
      </rule> 

답변

0

규칙은 것과 같아야합니다 :

<rule name="Redirect to detail" stopProcessing="true"> 
    <match url="^detail/.*-(\d+).php$" ignoreCase="false" /> 
    <action type="Rewrite" url="/detail/?npid={R:1}" appendQueryString="false"/> 
</rule> 

정규 표현식 ^detail/.*-(\d+).php$http://www.mywebsite.com/detail/name-of-my-product-XXXXXXXX.php 같은 모든 URL과 일치 /detail/?npid=XXXXXXXX

로 재 작성합니다