반대의 경우 URL이없는 경우에만 URL을 다시 작성할 수 있습니까? 예를 들어, 절편 404s.재 작성된 대상 URL이있는 경우에만 ISAPI-Rewrite를 사용하여 URL을 다시 쓸 수 있습니까?
여기에 컨텍스트가 있습니다. 우리 사이트는 천천히 ASP 클래식에서 ASP.NET으로 마이그레이션하고 있습니다. 천천히, 나는 9000 + .asp 페이지를 한 번에 한 페이지 씩 .aspx로 변환하는 것을 의미합니다.
우리는 검색 엔진에서 순위를 잃지 않도록 모든 깨진 링크를 방지하고자합니다. 즉, .aspx URL이 .aspx 페이지에서 제공 되더라도 계속 존재해야한다는 것을 의미합니다.
내가 할 수 있기를 원하는 것은 대상 URL이 실제로 존재하지 않는 한 실제로 실행하여 .asp를 반환하지 않는 한 .asp -> .aspx를 다시 작성하는 ISAPI-Rewrite 규칙을 사용하는 것입니다. ASP.
아직 somepage.asp를 .aspx로 변환하지 않은 경우 URL이 다시 작성되지 않고 somepage.asp가 표시됩니다. somepage.asp가 사라지면 URL은 somepage.aspx로 다시 작성되어 실행되고 반환되지만 웹 브라우저/검색 엔진은 somepage.asp를 수신했다고 생각합니다.
미래에 어떤 시점에서 .aspx 페이지에 canonical url을 설정하고 검색 엔진이 편리하게 따라 잡을 수 있도록합니다.
참고 : IIS에서 custom 404를 사용하여 파일 시스템을 검사하고 대상 .aspx 페이지가있는 경우 Server.Transfer를 수행했지만 asp classic에서 asp.net으로 전송할 수는 없습니다. ("지정된 '페이지 언어 ="C# "옵션이 알 수 없거나 유효하지 않습니다. 오류'8000d001 '")이 방법이 작동하는 유일한 방법은 Server.Transfer 대신 301/302 리디렉션을 수행 한 것입니다. 이 시점에서 우리에게 바람직하지 않습니다. (관리는 편집증이며 옵션이 없다고 말합니다.)
404를 검색하려면 웹 요청을해야하며 ISApi-Rewrite가 처리하지 못하는 것입니다. 이 작업을 수행하는 유일한 방법은 수동으로 ASP 파일을 변환 할 때 한 번에 하나씩 ini 파일에 추가하는 것입니다. –
또는 물건이 폴더에 있으면 (잘하면 9,000+ 페이지 사이트에 해당), 한 번에 한 폴더 씩 할 수 있습니다. –
@Chris 실제로 많은 폴더가 있습니다. 그러나 일부 폴더에는 수천 페이지가 들어 있기 때문에 전체 디렉토리를 한꺼번에 처리하는 데 직원 및 시간 제약이 따르는 것은 비현실적입니다. –