2015-02-05 1 views
1

는 후 경로를 대체/다음과 같이 URL을 다시 작성하도록 내가 web.config 파일을 업데이트 할 필요가 있습니다정규식의 web.config - 후 선택 경로/및 URL PARAM로 다시

도메인을. COM/acct01 -> domain.com/#/?id=acct01

domain.com/acct02 -> domain.com/#/?id=acct02

domain.com/acct03 -> domain.com/# /? id = acct03

...

현재 모든 계정에 대해 web.confg 파일에 다음을 추가하고 있습니다. 위의 예에서 다음을 수행해야합니다.

<rule name="acct01" stopProcessing="true"> 
    <match url="^acct01$" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://domain.com/#/?id=acct01" /> 
</rule> 

<rule name="acct02" stopProcessing="true"> 
    <match url="^acct02$" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://domain.com/#/?id=acct02" /> 
</rule> 

<rule name="acct03" stopProcessing="true"> 
    <match url="^acct03$" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://domain.com/#/?id=acct03" /> 
</rule> 

많은 계정을 사용하면이 기능이 다루기 힘들어 질 수 있습니다. URL의 마지막/내부 이후 값을 캡처하는 일반적인 방법과 id URL 매개 변수 뒤에있는 작업 섹션에서 URL을 대체하는보다 일반적인 방법을 찾고 있습니다. 예를 들면 다음과 같습니다.

URL에 #이 있으면 재 작성되었음을 나타 내기 때문에 무시하고 남겨 두어야합니다.

IIS가 설치된 Windows 상자에 있으므로 web.config 파일 대신 사용할 수 있습니다.

감사합니다. 내가 제대로 질문을 이해하지만, 생각 다음이 패턴이 일을 할 것입니다 마지막 //#/?id=로 교체하는 경우, /#/?id=

(?=\/([a-z0-9]+)$) 

를 교체 할 경우

답변

2

확실하지.

당신은 여기를 테스트 할 수 https://regex101.com/r/kW8zU0/1

편집

이 같은 아마 뭔가 : 그룹 번호에 대한

<rule name="addIDFromPath" stopProcessing="true"> 
    <match url="(^|\/)([a-z0-9]+)(?=$)" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="https://domain.com/#/?id={R:2}" /> 
</rule> 

확실하지, {R:1}

패턴이 될 수 :,648,247,

데모 : 위대한 https://regex101.com/r/kW8zU0/4

+0

. 패턴이 작동하지만 URL을 다시 작성하도록 web.config 파일에서 어떻게 사용합니까? – snazzyHawk

+0

URL을 제공 한 web.config에 이미 올바른 끝 :'# /? id = acct01'이 있습니다. 정확히 대체하고 싶은 것은 무엇입니까? 파일 및 예상 출력의 예를 제공해 주시겠습니까? – streetturtle

+0

원래 질문에서 설정 파일의 스 니펫을 보면 찾을 수있는 패턴은 에 있고 대체 코드는 을 URL id 매개 변수로 사용하십시오. 잠재적으로 100 개의 계정을 보유 할 수 있으며 위의 스 니펫은 각 계정에 대해 한 번 복제됩니다. – snazzyHawk