2010-04-10 9 views
29

Czy istnieje coś takiego, jak dyrektywa wieloznaczna, która wychwytuje wszystkie możliwe błędy i radzi sobie z nimi na jednej niestandardowej stronie błędu?Jedna dyrektywa ErrorDocument, aby wychwycić wszystkie błędy (.htaccess).

ErrorDocument 404 /error.php?code=404 
ErrorDocument 403 /error.php?code=403 
... 
ErrorDocument NNN /error.php?code=NNN #possible use of RegExp? 

Wiem, że prawdopodobnie nie będę miał do czynienia z wieloma niestandardowymi stronami błędów tutaj, ale jestem ciekaw tego.

Odpowiedz

23

To nie jest możliwe. Musisz mieć dyrektywę ErrorDocument dla każdego kodu statusu, który chcesz obsłużyć inaczej niż z domyślną obsługą błędu.

+0

Dobra, trochę wymyślona - próbowałem użyć niektórych "sztuczek" użytecznych w dyrektywach RewriteRule, ale dały one tylko 500 błędów. Dzięki za wytłumaczenie. –

3

Zamiast podawać kod statusu błędu, można go pobrać ze skryptu za pomocą zmiennej środowiskowej REDIRECT_STATUS (ustawionej przez Apache). Zobacz: http://httpd.apache.org/docs/2.0/custom-error.html

+3

To nie rozwiąże problemu wyliczenia każdego kodu błędu w '.htaccess', ale warto wiedzieć, ale – HXCaine

+0

To jest to, co robię, a pytanie pyta, jak ułatwić to obsługę w. Htaccess. –

Powiązane problemy