Jak ustawić upload_max_filesize w .htaccess?


90

Spróbowałem umieścić te 2 linie

php_value post_max_size 30M
php_value upload_max_filesize 30M

w moim głównym pliku .htaccess, ale wyświetla mi się komunikat "wewnętrzny błąd serwera" ...
php5 działa na serwerze
Nie mam dostępu do php.ini, więc myślę, że htaccess to moja jedyna szansa.
Czy możesz mi powiedzieć, gdzie jest błąd?
Z góry dziękuję

Odpowiedzi:


139

php_value upload_max_filesize 30M jest poprawne.

Będziesz musiał skontaktować się ze swoimi dostawcami usług hostingowych - niektórzy nie pozwalają na zmianę wartości w php.ini


2
Dziękuję, ale ini_set () nie działa dla upload_max_filesize i post_max_size: /
T1000

kiedy mówisz „nie działa”, masz na myśli, że nie przynosi pożądanego rezultatu / powoduje błąd / coś innego?
Kerry Jones

ustaw error_reporting (E_ALL) i zobacz, czy coś się wyświetla. Poza tym skontaktuj się ze swoim dostawcą usług hostingowych, powinni oni być w stanie Ci pomóc. Niektóre zmiany blokują takie zmienne, ponieważ nie chcą, aby użytkownik stał się główną odwiedzaną witryną.
Kerry Jones

14
Te opcje nie mogą być ustawione przez ini_set (). Zobacz php.net/manual/en/ini.list.php i php.net/manual/en/configuration.changes.modes.php
dev-null-dweller

Wiele hostów na to nie pozwala, ale możesz także utworzyć plik php.ini, umieścić go w katalogu głównym witryny i nadpisać tam wartości.
Erik Čerpnjak

37

Jeśli otrzymujesz 500 - wewnętrzny błąd serwera , oznacza to, że nie masz uprawnień do ustawiania tych wartości przez .htaccess . Musisz skontaktować się z dostawcą serwera internetowego i poprosić o ustawienie AllowOverride Optionsdla swojego hosta lub umieszczenie tych linii w ich pliku konfiguracyjnym wirtualnego hosta.


Dziękuję Ci. Dziennik błędów zawierał bzdury dotyczące nieprawidłowego polecenia, co jest dalekie od „Przejdź do zmiany pliku konfiguracji wirtualnego hosta”.
Altimus Prime,

33
php_value memory_limit 30M
php_value post_max_size 100M
php_value upload_max_filesize 30M

Użyj wszystkich 3 .htaccesscali po wszystkim w ostatniej linii. php_value post_max_sizemusi być więcej niż pozostałe dwa.


2
czy mogę poznać powód, dla którego php_value post_max_sizemusi być więcej niż dwóch pozostałych?
Anusha

@Anusha, jeśli o tym pomyślisz, możesz pisać post z dwoma plikami 30M + więcej danych tekstowych, a to będzie kosztować dodatkowe bajty, to prawdopodobnie powód
giovannipds

12

Aby to naprawić, należy utworzyć plik o nazwie php.ini i zapisać go w tej samej lokalizacji, co plik .htaccess, a następnie wprowadzić następujący kod:

upload_max_filesize = "250M"
post_max_size = "250M"

4
Działa to tylko w niektórych środowiskach hostingowych. Pracował dla mnie na moim koncie hostingowym Web Fusion.
Ian Jamieson

3

Jeśli na twoim serwerze WWW działa php5, uważam, że musisz użyć php5_value. To rozwiązało ten sam błąd, który otrzymałem podczas używania php_value.


-2

Obie komendy są poprawne

php_value post_max_size 30M 
php_value upload_max_filesize 30M 

ALE aby użyć .htaccess, musisz włączyć rewrite_modulew pliku konfiguracyjnym Apache. W httpd.confznajdź tę linię:

# LoadModule rewrite_module modules/mod_rewrite.so

i usuń #.


6
IMHO, aby umożliwić korzystanie z .htaccess, wszystko, co musisz zrobić, to ustawić AllowOverridewszystko oprócz none. Ładowanie rewrite_modulejest wymagane tylko w przypadku dyrektyw ModRewrite.
RonaldPK,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.