1

저는 ISAPI_Rewrite를 처음 사용했습니다 & 정규 표현식에 끔찍합니다. 하위 도메인을 제거하고 매개 변수로 전달하는 ISAPI_Rewrite에 대한 다시 쓰기 규칙이 필요합니다. 예를 들어 :하위 도메인을 매개 변수로 전달

mysubdomain.mydomain.com 

내가 www 제외한 모든 하위 도메인을 일치하는 것으로 보인다 정규식을 발견했습니다

mydomain.com/Landing.aspx?ID=mysubdomain 

가되어야하지만, 나는 다음과 같이 하위 도메인을 전달하는 방법을 잘 모르겠어요 매개 변수는 위의 예제와 같습니다.

^((?:(?!www).)*) 

어떤 도움을 주시면 감사하겠습니다.

참고 : 전체 버전의 ISAPI_Rewrite를 사용하고 있으므로이 규칙은 사이트 수준에 있습니다.


글로벌 규칙 :이 같은

# Helicon ISAPI_Rewrite configuration file 
# Version 3.1.0.89 

#Disable extentionless processing for ASP.Net v 4.0 
RewriteRule (.*)eurl.axd/.* $1 

# Don't rewrite urls that are inside the assets folder or have the following extentions 
RewriteRule ((^/Assets/.*)|(.*\.axd.*)|(.*\.asmx.*)|(.*\.png.*)) $1 [NC,L] 

#Rewrite URL, pass last portion of URL to Landing.aspx + purl 
RewriteRule (.*) $2/landing.aspx\?id=$1 [NC] 

답변

1

뭔가가 당신을 위해 작동 할 수 있습니다

# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^$ 
RewriteCond %{HTTP_HOST} ([^.]+)(?<!^www)(\.|$) [NC] 
RewriteRule^Landing.aspx?ID=%1 [L,QSA] 

추신 : 글로벌 규칙이 내 위의 규칙과 충돌처럼 보인다. 다음

RewriteCond %{QUERY_STRING} ^$ 
RewriteCond %{HTTP_HOST} !mydomain\.com$ [NC] 
RewriteRule ^(.*)$ landing.aspx?id=$1 [L] 
0

사용해보십시오 : 나는이 같은 글로벌 규칙이 충돌을 방지해야하는 것이 좋습니다 때문에 것

RewriteEngine on 
RewriteBase/

RewriteCond %{HTTP:Host} !^www\.mydomain\.com$ 
RewriteCond %{HTTP:Host} ^([^.]+)\.mydomain\.com$ 
RewriteRule ^$ /Landing.aspx?ID=%1 [NC,L] 

당신은 301 리디렉션 또는 재 작성을 원하는 경우 지정하지 않은, 리다이렉트를 원한다면 [NC, L] 대신 [NC, R = 301, L]을 사용하십시오.

+0

나는 쿼리 문자열에서'id = /'만 얻는다. –

+0

빌드는 무엇입니까? – Andrew

+0

로깅을 활성화하고 요청 처리 방법을 살펴 보려면 httpd.conf에 다음 줄을 추가 할 수 있습니다. #enabling rewrite.log RewriteLogLevel 9 # 오류가있는 로그를 허용합니다. LogLevel debug – Andrew

관련 문제