몇 년 전 나는 하나의 APSX 페이지를 사용하여 모든 사이트 페이지를 표시하는 데이터베이스 기반 ASP.NET 사이트를 만들었습니다. 그래서 사이트의 모든 URL의 형식은 다음과 같습니다더하기 ASP.NET 사이트에 대한 쿼리 문자열
/main.aspx?page=Page+Title+One
/main.aspx?page=Another+Article+Title
/main.aspx?page=Third+Page
main.aspx 페이지는 쿼리 문자열 데이터 (페이지 + 제목 + 예를 들어 하나)을 가져 와서 적절한 문서를 당길 수있는 키로 사용 SQL 서버 데이터베이스의 컨텐츠. 페이지의 실제 제목은 더하기 대신 공백이있는 db에 저장됩니다 (예 : "페이지 제목 1").
URL 검색어 문자열에서 + 기호를 단어 구분 기호로 사용하는 것이 좋지 않은 결정은 최근에 검색 엔진에서 많은 문제를 일으키고 있습니다 (중복 콘텐츠 등). URL을 변경하지 않고 수정하려고합니다. . 나는 301 영구 리디렉션을 수행 할
/main.aspx?page=Page Title One
: 검색 엔진이나 방문자가 예를 들어, + 표시를 누락하는 대신 공백을 갖는 잘못된 URL을 방문 할 때 내가 원하는 무엇
입니다 :
/main.aspx?page=Page+Title+One
하면 실제 quesry 문자열이있는 경우에도 내가 Request.QueryString을 [ "페이지"]으로 값을 얻을 그러나 때, 쿼리 문자열 값이 흑자 또는 공백이 있는지 확인해야이 작업을 수행 할 수 있도록 그 안에는 여전히 공백 "페이지 제목 1"이있는 문자열이 있습니다.
이 사이트는 IIS6/윈에서 실행 2003
내가 어떻게 할 수 있습니까?
내 URL은 항상 공백 또는 % 20 대신에 더하기 기호 만 사용했습니다. 그러나 Google에서 캐시 된 페이지는 다음 2와 같이 표시됩니다. /main.aspx?page=KW1 KW2 및 /main.aspx?page=KW1% 20KW2, 둘 다 잘못되어 중복되는 콘텐츠 문제를 일으키고 있습니다. 이제 301 URL을 /main.aspx?page=KW1+KW2라는 올바른 URL로 보내고 싶습니다. –
그게 내가 설명하고있는 것 같아. 확실하지 않은 것이 무엇인지 잘 모르는 채로 코드가 추가되었습니다. –
감사합니다 존, 이것은 정확히 내가 필요한 것입니다 :). 질문에 답변으로 표시하려면 어떻게합니까? –