2014-12-04 3 views
0

I URL에 언어 지정교체 요청 된 URL 섹션

정규식을 사용하여 포함하는 웹 사이트, 나는 URL의 언어 구문 분석 할 수 있습니다 (예 http://example.org/English/rest/of/url.aspx가.) :

Match match = Regex.Match(HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath, "^~/(?<language>[^/]+)/"); 

I을 다음 파싱 언어를 확인하고 언어가 내가 원하는 무엇인지 확인 할 수 있습니다 내가 지금 대체 할 짐승 같은 문자열 조작보다 더 간단한 방법을 찾고 있어요

match.Groups["language"].Value 

필요한 경우 새로운 언어로 해당 언어를 사용하십시오.

그래서 위의 URL이 http://example.org/German/rest/of/url.aspx

내 초기 생각으로 변경 될 것은이었다 간단한 검색/페이지 이름이나 URL 조각 그들에 언어 이름을 가질 수 있으므로 작동하지 않습니다 그러나 대체합니다. 루트 URL 다음의 첫 번째 단편에만 관심이 있습니다.

URL을 변경 한 후 사용자를 리디렉션하고 완료합니다.

답변

1

당신의 URI를 구성 당시 경로 분할 '/'를 추출 할 PathAndQuery를 사용하여 첫 번째 인스턴스를 대체 만들 수 있습니다 또는 당신은 Regex.Replace를 사용할 수 있습니다

string requestUrl = "~/English/rest/of/url.aspx"; 
string targetLanguage = "German"; 
Match match = Regex.Match(requestUrl, "^~/(?<language>[^/]+)/"); 
if (match.Groups["language"].Value != targetLanguage) 
    Response.Redirect(Regex.Replace(requestUrl, "^~/[^/]+/", string.Format("~/{0}/", targetLanguage))); 
+0

도현, 내 얼굴 앞에서. 완벽하게 작동합니다. 감사. – Nate222

0

당신이 열린 우리당의 객체가 다시