2017-12-03 4 views
0

나는 URL을Asp.net 301 리디렉션

domain.com/title-xxx-id 

ID와 제목 쿼리 문자열 매개 변수를 변경하려면 URL

domain.com/posts/id/title 

같은 있습니다. -xxx-는 정적입니다.

나는 도메인 변화에

<rule name="Redirect to WWW" stopProcessing="true"> 

    <match url=".*" /> 

    <conditions> 

    <add input="{HTTP_HOST}" pattern="^olddomain.com$" /> 

    </conditions> 

    <action type="Redirect" url="https://newdomain.com/{R:0}" 

     redirectType="Permanent" /> 

</rule> 

을 사용했지만 지금은 같은 도메인의 URL 변화를 필요로하고 내가 리디렉션 URLRewrite (2.x)를 사용하는 경우에도 간단 두 개의 매개 변수와 동일한 도메인에

답변

1

있습니다. 이 같은.

<rule name="friendly" stopProcessing="true"> 
    <match url="^post/(.+)/(.+)$" negate="false" /> 
    <action type="Redirect" url="{R:1}-xxx-{R:2}" appendQueryString="false" /> 
    </rule> 

실제로 처리 할 처리기에 title-xxx-id URL을 전송해야합니다. 이렇게하면 (post이 사용하는 컨트롤러라고 가정하면) 이렇게 할 수 있습니다.

<rule name="friendly1" stopProcessing="true"> 
    <match url="^(.+)-xxx-(\d+)$" negate="false"/> 
    <action type="Rewrite" url="/post?title={R:1}&amp;id={R:2}" appendQueryString="false"/> 
    </rule> 

사실 두 규칙이 함께 작동 할 수 있습니다.

<rule name="friendly" stopProcessing="false"> 
    <match url="^post/(.+)/(.+)$" negate="false" /> 
    <action type="Redirect" url="{R:1}-xxx-{R:2}" appendQueryString="false" /> 
    </rule> 
    <rule name="friendly1" stopProcessing="true"> 
    <match url="^(.+)-xxx-(\d+)$" negate="false"/> 
    <action type="Rewrite" url="/post?title={R:1}&amp;id={R:2}" appendQueryString="false"/> 
    </rule> 
+0

고맙습니다. 나는 한 가지 더 질문이있다. 이 변경 후 나는 새로운 문제가있다. 너 나 좀 도와 줄 수있어? https://stackoverflow.com/questions/47628919/asp-net-url-rewrite-rule – serdar