2012-10-31 7 views
9

Pracuję więc na stronie z 4 subdomenami pod główną. Mają już licencję MSM, więc używam tego, aby rozbić subwoofery.Ustawienia strony MSM 5 z popularnym przekierowaniem strony 404

Moje pytanie brzmi:

Jaki jest najlepszy sposób, aby obsłużyć 404 przekierowań dla wszystkich stron? Chcę korzystać ze wspólnej strony 404 dla witryny głównej i wszystkich subdomen.

Na stronie głównej jest to łatwe.

{if no_results OR segment_3!=""} 
    {redirect="404"} 
{/if} 

Ale nie byłoby innych witryn tylko zarejestrować się widok strony dla rzeczy jak analityki gdybym tylko dodać:

{if no_results OR segment_3!=""} 
    {embed="default_site:_includes/404"} 
{/if} 

Chciałbym móc mieć Wyniki samą stronę szeroko i złap wszystkie 404 statystyki.

Dzięki, Brian

+1

Opublikuj odpowiedź, a będziesz w stanie zaakceptować ją jako właściwą odpowiedź w ciągu dwóch dni. –

+0

Dzięki. Próbowałem, ale powiedziałem, że muszę poczekać 8 godzin, zanim będę mógł odpowiedzieć na moje pytanie. Po prostu nie chciałem marnować czasu na próbę pracy nad tym. Naprawiono to dziś rano. –

Odpowiedz

6

Ok, więc co skończyło się ze był następujący:

stworzyłem grupę szablon "_includes" w każdym miejscu. Następnie utworzyłem szablon "404-Page" w każdej z grup szablonów tych witryn. (. To było naprawdę tylko dla ułatwienia dla pamiętając Mogli być w dowolnej grupie szablonów, szablon config chcesz)

Każdy z nich zawierał następujące elementy:

{embed="default_site:_includes/404-Page"} 

Następnie pod każdym miejscu, w: Projekt => Szablony => Globalne Preferencje

ustawić stronę "Włącz Rygorystyczne URL" = 'Tak' i "404 Page" = "_includes/404-Page"

Sprawdziłem to w nagłówku wysyłanych i powoduje 404 grzywnę. Jedną z napotkanych przeze mnie kwestii był uruchomiony na serwerze Windows pod IIS7. Miałem też wyłączyć 404 błędów w pliku web.config i przetwarzać niestandardowego kodu 404 tak:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <httpErrors errorMode="Custom" existingResponse="Replace"> 
      <remove statusCode="404" subStatusCode="-1" /> 
      <error statusCode="404" path="/index.php/_includes/404-Page.html" responseMode="ExecuteURL" /> 
     </httpErrors> 
    </system.webServer> 
</configuration> 

umieściłem ten plik web.config w każdym z folderów głównym witryny. Ponieważ ścieżki zostały nazwane tak samo, była to prosta wklej/zrzut.

Mam nadzieję, że pomoże to komuś innemu. ;)