Wysłałem moje pliki .htaccess do serwerów produkcyjnych, ale one nie działają. Czy następnym krokiem byłby restart, czy powinienem sprawdzić coś innego.
Wysłałem moje pliki .htaccess do serwerów produkcyjnych, ale one nie działają. Czy następnym krokiem byłby restart, czy powinienem sprawdzić coś innego.
Odpowiedzi:
Ponowne uruchomienie nie jest wymagane w przypadku zmian w .htaccess. Coś innego jest nie tak.
Upewnij się, że Twój .htaccess zawiera oświadczenie
RewriteEngine włączony
który jest wymagany, nawet jeśli jest również obecny w httpd.conf. Sprawdź również, czy plik .htaccess jest czytelny dla procesu httpd.
Sprawdź error_log - poinformuje Cię o błędach w pliku .htaccess, jeśli jest używany. Umieszczenie celowego błędu składniowego w .htaccess jest dobrym sprawdzeniem, czy plik jest używany - powinieneś otrzymać błąd 500 na dowolnej stronie w tym samym katalogu.
Na koniec możesz włączyć przepisywanie dziennika za pomocą poleceń, takich jak poniższe w pliku httpd.conf:
RewriteLog „logs / rewritelog”
RewriteLogLevel 7
Wygenerowany w ten sposób plik dziennika zawiera krwawe szczegóły dotyczące dopasowanych reguł przepisywania i sposobu ich obsługi.
Nie :
Apache pozwala na zdecentralizowane zarządzanie konfiguracją za pomocą specjalnych plików umieszczonych w drzewie WWW. Pliki specjalne są zwykle wywoływane
.htaccess
, ale w dyrektywie AccessFileName można określić dowolną nazwę ... Ponieważ pliki .htaccess są odczytywane przy każdym żądaniu, zmiany wprowadzone w tych plikach mają natychmiastowy skutek ...
Z dokumentacji Apache: Najczęściej problem polega na tym, że AllowOverride nie jest ustawione w taki sposób, że dyrektywy konfiguracyjne są honorowane. Upewnij się, że dla danego zakresu pliku nie obowiązuje opcja AllowOverride None. Dobrym testem jest umieszczenie śmieci w pliku .htaccess i ponowne załadowanie. Jeśli błąd serwera nie jest generowany, prawie na pewno obowiązuje opcja AllowOverride None.
Mam ten sam problem i wydaje się, że post PiedPiper o AllowOverride był najbardziej pomocny. Sprawdź plik httpd.conf pod kątem „AllowOverride” i upewnij się, że jest ustawiony na All.
W przypadku .htaccess restart nie jest wymagany, jeśli nie działa, prawdopodobne przyczyny obejmują.
AllowOverride Nie można ustawić, którego użytkownika można ustawić w pliku httpd.conf lub może być konieczne skontaktowanie się z administratorem serwera.
Sprawdź nazwę pliku .htaccess, powinna to być .htaccess, a nie htaccess.txt. Tutaj znajdziesz poradnik, jak go utworzyć.
Spróbuj użyć prostej dyrektywy Options -Indexes
lub deny all
czegoś w rodzaju prostej dyrektywy, aby sprawdzić, czy działa, czy nie.
czyść pamięć podręczną przeglądarki za każdym razem, jeśli masz regułę dla przekierowań lub podobną, jeśli poprzednie przekierowanie jest buforowane, wygląda na to, że coś nie działa.
LogLevel alert rewrite:trace7
. Po ponownym uruchomieniu Apache powinieneś zobaczyć ślady w error.log Mam nadzieję, że to pomoże. http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging