2011-01-09 14 views
5

Mam następujący kod w pliku htaccess w katalogu głównym aplikacji, aby włączyć buforowanie wyjścia.PHP - htaccess - output_buffering

php_value output_buffering On 
php_value output_handler mb_output_handler 

Na niektórych serwerach powoduje błąd wewnętrzny 500, a na innych działa poprawnie. Czy ktoś wie, dlaczego czasami powoduje błąd. Czy jest inny sposób na zrobienie tego?

Dziękujemy!

+0

Czy te serwery, które zwracają błędy uruchomiona wersja PHP przed 4.0.4? – cdhowie

+0

Nie, wszystkie mają 5,2 lub więcej. –

+0

Hej miałem do czynienia z problemami przekierowania. Dodałem tylko powyższą 2 linię do pliku .htaccess i dodałem metody ob_start() i flush() w moim pliku. Działa jak wdzięk dzięki :) –

Odpowiedz

3

Możesz użyć tej składni tylko if PHP is running as an Apache module.

Do 500 błędy prawdopodobnie pojawią się na serwerach, gdzie nie jest to przypadek.

Dla całkowitej pewności, spójrz do pliku serwera error.log, aby uzyskać szczegółowy komunikat o błędzie.

+0

Dziękuję bardzo jak zwykle! –

+0

Nawet jeśli przyjmiemy, że serwer nie uruchamia PHP jako modułu Apache, ** dlaczego miałby wyrzucać błąd 500? ** Czy zawartość pliku .htaccess nie jest po prostu ignorowana? – Pacerier

+0

@Pacerier nie, Apache zawsze zgłasza błąd 500 po napotkaniu nieznanego polecenia. –

2

Te dyrektywy działają tylko wtedy, gdy PHP jest instalowane jako moduł. Na innych serwerach będzie to 500, ponieważ będą nieważne dyrektywy

+0

Nawet jeśli przyjmiemy, że serwer nie uruchamia PHP jako modułu Apache, to dlaczego wyrzucił błąd 500? Czy zawartość pliku .htaccess nie jest po prostu ignorowana? – Pacerier

+0

Nie, zawartość jest oceniana jako dyrektywy, a jeśli nie ma modułu PHP, Apache nie wiedziałby, jak interpretować dyrektywę "php_value", więc to się nie uda z 500 –

2

Nie jestem pewien, ale myślę, że błąd jest spowodowany przez pierwszy wiersz.

Zastosowanie php_flag do włączania/wyłączania przełączników prawda/fałsz, tak:

php_flag output_buffering On 
Powiązane problemy