2014-09-04 2 views
0

이 아파치 다시 쓰기 규칙을 web.config 규칙으로 변환하려고하는데 작동하지 않습니다.아파치 다시 쓰기 규칙을 IIS web.config로 변환

기본적으로 사용자 에이전트를 확인하고 URL로 에이전트를 리디렉션이 내가 지금까지 무엇을 가지고

# allow social media crawlers to work by redirecting them to a server-rendered static  version on the page 
RewriteCond %{HTTP_USER_AGENT (facebookexternalhit/[09]|Twitterbot|Pinterest|Google.*snippet) 
RewriteRule qs/(\d*)$ http://sitetocrawl.com/doc?id=$1 [P] 

를 제공했다. 그러나, 나는 url 쿼리 문자열 매개 변수를 잡는 방법을 알아낼 수 없습니다. 기본적으로 텍스트 문자열 http://example.com/qs/parameter 편집

<rule name="Social Rewrite" patternSyntax="ECMAScript" stopProcessing="true"> 
<match url="urltomatchpattern" ignoreCase="true" negate="false" /> 
<conditions logicalGrouping="MatchAny" trackAllCaptures="false"> 
    <add input="{HTTP_USER_AGENT}" pattern="facebookexternalhit/[0-9]|Twitterbot|Pinterest|Google.*snippet" /> 
</conditions> 
<action type="Redirect" url="http://sitetocrawl.com/doc?parameter" appendQueryString="true" redirectType="Found" /> 
</rule> 

후 : 특정 사용자 에이전트가 내 경우에는 (사이트를 요청할 때 내가 리디렉션과 같은 간단한 규칙의 많은 변종과 노력

가/다시, 페이스 북의 크롤러). 하지만 나는 그 규칙을 작동시킬 수조차 없다. Facebook OG debugger

<rule name="Rule1" stopProcessing="true">   
     <match url=".*" /> 
     <conditions> 
     <add input="{HTTP_USER_AGENT}" pattern="facebookexternalhit/1.1|Facebot" /> 
     </conditions> 
     <action type="Redirect" url="new url here" />  
    </rule> 
+0

당신이 직접 규칙을 작성하고 있습니까, 아니면 여기의 지시 사항을 따랐습니까? http://www.iis.net/learn/extensions/url-rewrite-module/importing-apache-modrewrite-rules – astaykov

+0

작성 중입니다. 내 자신 ... 나는 Visual Studio가 설치되어 있고 가져 오기 도구를 찾을 수 없었던 IIS 익스프레스 만 가지고 있습니다. – Josef

답변

0

답이 아니라 출발점입니다. 는 IIS 관리자 (윈도우 8.1에서 8 IIS)이 약간 다른 구성으로 아파치의 mod_rewrite 규칙을 변환합니다

<rewrite> 
    <rules> 
    <rule name="Imported Rule 1" stopProcessing="true"> 
     <match url="qs/(\d*)$" ignoreCase="false" /> 
     <conditions> 
     <add input="%{HTTP_USER_AGENT" pattern="(facebookexternalhit/[09]|Twitterbot|Pinterest|Google.*snippet)" ignoreCase="false" /> 
     </conditions> 
     <action type="Rewrite" url="http://sitetocrawl.com/doc?id={R:1}" appendQueryString="false" /> 
    </rule> 
    </rules> 
</rewrite> 

내가 대신 리디렉션의 재 작성하지만,이 시나리오를 위해 일하는 것이 있는지 확인하시기 바랍니다 것을 참조하십시오. 작동하는 경우 원하는 결과에 도달 할 때까지 변경을 시작할 수 있습니다.

이제 주 URL 일치 패턴은 단지 urlmatchpattern이며 이는 물론 패턴이 아니며 규칙이 작동하지 않는 근본 원인입니다.

+0

고마워요! 적어도 나에게 좋은 출발점이다. 나는 오늘 나중에 그것을 시도 할 것이다. 내 자신의 예제는 온라인으로 다양한 예제를 기반으로 함께 퍼즐을 풀려고 시도한 것입니다. – Josef

+0

'match' 엘리먼트의'url' 속성을 조심하십시오. 여러분이 짐작할 수 있듯이, 동작하는 것들에 매우 중요합니다. – astaykov

+0

그래, 절대적으로 – Josef

관련 문제