2008-11-03 5 views
3

내 웹 사이트에서 URL을 다시 쓰려면 http://urlrewriter.net/을 사용하고 있습니다. 예를 들어, 나는 다시 작성 해요 :asp.net url이 "다시 작성"되었는지 어떻게 확인할 수 있습니까?

http://www.example.com/schedule.aspx?state=ca

http://www.example.com/california.aspx

난 할 노력하고있어 (SEO 목적)

에에 동적에 메타 태그 추가 :

<meta name="robots" content="noindex,follow" /> 

은 다시 작성되지 않은 페이지입니다. 두 URL이 모두 작동하기를 원하기 때문입니다.하지만 다시 작성된 URL 만 검색 엔진에서 색인을 생성하기 때문입니다.

페이지의 어떤 버전이 요청되었는지 어떻게 알 수 있습니까?

EDIT

답변 아래 대신 메타 태그를 사용하여 301 리디렉션을 제안한다. 어쩌면 내가 할거야,하지만 여전히 기본 질문에 대한 답변을 알고 싶습니다 ... 페이지가 다시 작성되었는지 어떻게 알 수 있습니까? 이 작업을 수행해야하는 경우

답변

2

개인적으로, 나는 301에서 재 것이다 해제 다시 재 작성된 1-1을 만 페이지의 단일 복사본을 사용합니다. 사용자에게는 SEO 관점에서 볼 때 콘텐츠 사본 1 개가 더 쉽습니다.

+0

그건 분명히 옵션이지만 nofollow 옵션을 탐색하고 싶습니다. – Keltex

+0

또한, 기록되지 않은 페이지에 페이지 순위가있는 경우 follow를 사용하지 않으면 해당 페이지 순위가 풀리고 페이지가 숨겨집니다. 301을 사용하면 전송됩니다. –

+0

좋은 지적입니다. 제 질문은 여전히 ​​적절하다고 생각합니다. 요청이 다시 작성된 페이지인지 여부를 어떻게 결정합니까? 다시 쓰지 않으면 301이됩니다. – Keltex

2

당신은 아마 같은 것을 수행 할 수 있습니다

<add header="X-WasRewritten" value="true" /> 

을 그리고 당신은 당신의보기에서 헤더를 확인하고 당신이 그것을 필요로하는 경우에 로봇을 메타 태그를 추가 할 수 있습니다.

이렇게하면 클라이언트에 반환되므로 사용자 요청에 일종의 상태 값을 설정할 CustomAction (http://urlrewriter.net/index.php/support/reference/actions/custom-action)을 숨길 수 있습니다.

그러나 같은 리소스에 대해 두 개의 URI를 사용하는 것이 좋습니다. 나는 당신이 단지 하나의 표현을 유지할 것을 제안합니다. 이전 북마크를 무효화하는 것에 대해 걱정하는 경우 이전 북마크를 새 북마크로 리디렉션하도록 설정할 수 있습니다.

1

가장 확실한 방법은 페이지의 Request.Url 개체를 사용하여 URL 및 쿼리 문자열에 대한 정보를 얻는 것입니다. 예를 들어 :

if (Path.GetFileName(Request.Url.FilePath) == "schedule.aspx") 
    //Not rewritten 
else 
    //rewritten 
+0

: 그래서, 당신은 뭔가를 시도 할 수 있습니다. –

0

나는 이것이 HttpContext.Current.Items의 직업이라고 생각합니다.

HttpContext.Current.Items에서 "리디렉션"을 저장 한 다음 페이지에서 특정 추가 값을 확인할 수 있습니다.

나는 urlrewriter에 후크를 추가 할 수 있다고 생각합니다.그것을 할 수 그물, 뭔가 alongs : 웹 페이지에서

HttpContext.Current.Items["Redirected_From"] = currentUrlHere; 

그 다음을, 당신은하여 확인할 수 있습니다 :

if (!string.IsNullOrEmpty(HttpContext.Current.Items["Redirected_From"])) 
    // the page's been redirected, do something! 
else 
    // no it's visited normally. 

내가 왼쪽 거기에 ASP.NET 라우팅 프레임 워크 오래 전에 있습니다. NET 3.5 SP1을, 그것은 urlrewriter.net IMO보다 낫다.

2

chakrit의 대답에 더하여, UrlRewriter.NET은 원래 URL을 이라는 URL의 HttpContext에 저장하는 것처럼 보입니다. UrlRewriter.NET.RawUrl. 이 urlrewriting.net에서 작동하는 경우 응용 프로그램이 사용하는 다시 쓰기가 다시 정상 형식으로 URL을 변환, 나는 확실하지 않다

bool isPageRewritten = 
    !string.IsNullOrEmpty(HttpContext.Current.Items["UrlRewriter.NET.RawUrl"]); 
관련 문제