2015-06-15 45 views
6

Mój problem jest rzeczywiście blisko do tego: Umbraco V6 404 not handled properly according to cultureUmbraco 404 z innej kultury nie działa

mam 2 katalogi z innej kultury:

Content 
     EN 
      page1 
      page2 
      404 
     FR 
      page1 
      404 

Kiedy idę ze strony FR do 404, kultura powraca w języku angielskim.

Wygląda na to, że jest oparty na adresie URL i prawdopodobnie z silnikiem 404 nie może znaleźć linku, więc ustawia kulturę jako domyślną, ale chciałbym zachować tę kulturę, gdy użytkownik spotyka stronę 404.

mój config:

<error404> 
     <errorPage culture="en-US">1187</errorPage> 
     <errorPage culture="fr-FR">1189</errorPage> 
    </error404> 

W jaki sposób można to zrobić?

Używam ścieżek jednopoziomowych w domenach.

Przykład adresami:

  • strona/EN/strona1
  • strona/EN/Strona2
  • strona/FR/strona1

użyć Umbraco 7.2.5

+0

można spróbować cofnąć publikację strukturę węzła "EN" i przetestować przekierowanie "FR" na stronę FR 404? – Mivaweb

+0

Zrobiłem to. Nie jestem przekierowywany na stronę fr 404. – Giu

+0

Do domyślnej strony 404 lub do jakiej strony zostałeś teraz przekierowany? – Mivaweb

Odpowiedz

1

Po pewnym lekturze na różnych forach okazało się, że jest to częsty problem. Ale jest jeden post na Umbraco Wiki, który może może ci pomóc.

Ten post zawiera informacje na temat pisania własnego 404 handler. Po prostu stwórz nową klasę, która jest inetrystą z interfejsu umbraco.interfaces.INotFoundHandler, która definiuje dwie właściwości i jedną metodę, która musi być zawarta w twojej klasie.

0

Stare pytanie, ale to działa na Umbraco 7.x

umbracoSettings.config

<errors> 
    <error404> 
    <errorPage culture="default">1332</errorPage> 
    <errorPage culture="en-US">1332</errorPage> 
    <errorPage culture="sv-SE">1185</errorPage> 
    </error404> 
</errors> 

web.config

Dodaj poniżej <system.webServer>

<httpErrors existingResponse="PassThrough"/>