로컬 개발자 테스트의 경우 모든 요청을 www.somedomain.com/XXX
(여기서 X는 경로)으로 가져와 localhost/somevdir/XXX
으로 보내야합니다.특정 도메인에 대한 URL 다시 쓰기 규칙 설정
내 HOSTS 파일이 추가되었습니다 (C : \ WINDOWS \ system32 \ drivers \ etc 여기서,) :
127.0.0.1 www.mydomain.com
다음은 IIS8 (윈도우 8)에서, 나는 바인딩 추가 한 내 www.mydomain.com 호스트의 "기본 웹 사이트". 이 작업을 통해 www.mydomain.com/test.html을 탐색하고 테스트 HTML 페이지를 볼 수 있습니다. 내 가상 디렉터리는 기본 웹 사이트 안에 있습니다. 그런 다음 URL 재 작성 URL을 웹 사이트에 마지막 비트로 추가합니다.
<rewrite>
<rules>
<rule name="mydomain.com" stopProcessing="true">
<match url="^www.mydomain.com/(.*)" />
<action type="Rewrite" url="localhost/MyVDir/{R:1}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
하지만 작동하지 않습니다. 나는 경기가 결코 일어나지 않을 것 같아서 404를 얻는다. 나는 리다이렉션을 시도하고 다시 작성, 그리고 ^없이 정규식과 몇 가지 다른 정규식 비틀기를 시도했습니다. 누군가 내가 잘못한 것을 설명 할 수 있습니까?
이<rule name="mydomain.com" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(mydomain\.com|www\.mydomain\.com)$" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="http://localhost/MyVDir/{R:1}" redirectType="Temporary" />
</rule>
모든 URL의 일치 조건이 선택되어 있는지 확인하게하고 HTTP_HOST 서버 변수가 요청 된 호스트 이름을 확인하는 가장 신뢰할 수있는 방법을 보인다
거의 :) 내가 리디렉션 (재 작동하지 않았다)를 사용했고, 호스트와 전체 경로를 지정했다 ('에 http : // localhost를/MyVDir/{R : 1}') 그러나 일단 내가 그것을했으면, 나는에 있었다 : –
당신은 당신의 도메인 이름에 대한 패턴으로 시대를 벗어나지 않아야하지 않습니까? $ –
좋은 점, 운 좋게도 대부분의 사람들은 www가없는 www.mmydomain.com을 가지므로 마침표와 일치하는 모든 문자는 문제가되지 않을 것입니다. 여기서 X는입니다 (예 : www.mydomain.com). (mydomain \ .com) 임의의 문자. 여분의 괄호는 필요하지 않습니다. –