2009-03-26 4 views
0

나는 URL Rewriting.NET과 비교하여 많이 좋아한다. - 더 많은 versitile이 보인다. 틀린 말은하지 않는다. URL 재 작성을 좋아한다. .NET,하지만 도구의 내가 뭘 알고 주어진 필요성을 충족하지 않는 것). default-documents 노드를 사용하여 사이트의 기본 문서를 재정의하려고합니다. 나는 라이터 노드에 추가 해봤지만, 나는 Web.config의 오류URL Rewriter.NET web.config 노드 문제

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 

Parser Error Message: The element 'default-documents' is not allowed. 

Source Error: 


Line 187: 
Line 188: <rewriter> 
Line 189:  <default-documents> 
Line 190:   <document>default.aspx</document> 
Line 191:   <document>index.aspx</document> 

사람이 과거에이 도구를 사용하고있다 얻고, 누군가는 어디에서이 노드 (또는 적절한 사용)를 넣어하는 방법을 알고 있습니까?

편집 :

나는 아래의 제안을 시도했지만 아주 잘 작동하지 않았다. 여기에 내가 전에 urlrewriter 사용하고, 실제로뿐만 아니라 기본 문서를 설정하는 몇 가지 문제를 했어 (이 설정 파일의 유일한 내용입니다)

<rewriter> 
     <rewrite url="^(/.+(\.gif|\.png|\.jpg|\.ico|\.pdf|\.css|\.js)(\?.+)?)$" to="$1" processing="stop" /> 
     <default-documents> 
      <document>default.aspx</document> 
      <document>index.aspx</document> 
     </default-documents> 
</rewriter> 
+0

"제대로 작동하지 않는 것"이 ​​"기본 문서를 사용하지 않았습니까?"를 의미합니까? 그렇다면 아래 편집을 확인하십시오. – Moose

답변

0

이 문제의 해결책은 내가 웹 사이트에서 사용하고있는 .NET 버전이라고 생각합니다. 나는 2.0 런타임을 사용하고 있는데, dll은 1.1 런타임을 위해 만들어졌다. 나는 웹 사이트에서 2.0 런타임이 RC (2007 년 중반 이후)에 있기 때문에이 프로덕션 웹 사이트에서 사용하지 않을 것임을 알았습니다. 대신 URL Rewriting.NET을 사용하여 동일한 목표를 달성하는 방법을 알아 냈습니다. 이 대신 재 작성의의 myvirtualpage.aspx에 HTTP 200 응답이 발생

<add name="Redirect54" virtualUrl="~/content/myvirtualpage.aspx" 
    rewriteUrlParameter="ExcludeFromClientQueryString" 
    destinationUrl="~/content/mydestinationpage.aspx?id=9" 
    redirect="None" 
    ignoreCase="true" /> 

:

나는 다음과 같은 규칙을 추가했다. 궁극적 인 목표는 mydestinationpage.aspx? id = 9에 301을 myvirtualpage.aspx로 지정하는 것입니다. 그러면 myvirtualpage.aspx에 200 개의 HTTP 응답이 제공됩니다. 그것은 조금 벗어났다.

+0

실제로, 나는 2.0 버전도 사용했다는 것을 믿습니다. 이전에 말했듯이, 몇 가지 성가신 버그로 결국은 극복 할 수있었습니다. – SirDemon

1

내 여분의 설정 파일에있는 것입니다. 그러나 결국 우리는 urlrewriter 설정을 web.config와는 다른 설정 파일로 옮김으로써 작동하도록했습니다 (그리고 다른 사소한 불만 사항들).

urlrewriter가 제대로 작동하려면 IIS에서 기본 문서를 사용하지 않도록 설정해야합니다. 이로 인해 많은 성가신 문제가 발생했습니다.

편집 : Web.config의에서 구성 섹션이 도움이

<section name="rewriter" requirePermission="false" type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/> 

희망이 줄을 추가하는 것을 잊지 마십시오.

+0

나는 이것을 줄 것이다, 고마워! – CodeMonkey1313

+0

별도의 구성 파일에 추가해도 문제가 해결되지 않았습니다. – CodeMonkey1313

1

이 조각은 나를 위해 작동 :

<configSections> 
     <section name="rewriter" 
       requirePermission="false" 
       type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" 
     /> 
    </configSections> 

    <rewriter> 
     <default-documents> 
      <document>index.aspx</document> 
     </default-documents> 
    </rewriter> 

편집 : 당신은 와일드 카드 응용 프로그램 맵을 추가하는 경우, 당신은 또한 선택하지 않은 "파일이 있는지 확인"있는지 확인하십시오. 이 작업을 수행하지 않으면 기본 문서가 아무 것도하지 않습니다.

다른 편집 : "파일 존재 확인"확인란을 보여주는 설치 단계가 있습니다. 8 단계 참조 here :

+0

당신과 SirDemon의 응답에 나열된 것과 동일한 configSections가 있습니다. httpModules 노드에 해당 줄이 있습니다.정기적 인 재 작성 노드가 정상적으로 작동합니다. 작동하지 않는 것은 기본 문서 노드 일뿐입니다. – CodeMonkey1313

+0

내 편집을 확인하십시오. 와일드 카드 응용 프로그램 맵을 추가 한 곳에서 "파일 존재 확인"을 선택 취소 했습니까? 그렇지 않으면 기본 문서를 사용하지 않을 것입니다. – Moose

+0

예, IIS 설정을 확인했습니다. 그게 문제를 해결하지 못하는 것 같습니다. 나는 그것의 런타임이 사용되고 있다고 생각하고있다. – CodeMonkey1313