Podać wartość śmieci do swojego .htaccess
np foo bar
, sakjnaskljdnas
dowolne słowo kluczowe nie uznawane przez htaccess i odwiedzić adres URL. Jeśli to działa, powinieneś otrzymać plik
500 wewnętrzny błąd serwera
Wewnętrzny błąd serwera
Serwer napotkał błąd wewnętrzny lub błędną konfigurację i nie mógł zrealizować Twojego żądania ....
Sugeruję, abyś to wstawił wkrótce RewriteEngine on
.
Ponieważ jesteś na swoim komputerze. Zakładam, że masz dostęp do .conf
pliku Apache .
otwórz .conf
plik i poszukaj linii podobnej do:
LoadModule rewrite_module modules/mod_rewrite.so
Jeśli jest skomentowany (#), odkomentuj i zrestartuj apache.
Aby zalogować przepisać
RewriteEngine On
RewriteLog "/path/to/rewrite.log"
RewriteLogLevel 9
Umieść powyższe 3 linie w swoim virtualhost
. zrestartuj httpd.
RewriteLogLevel 9
Użycie wysokiej wartości poziomu znacznie spowolni twój serwer Apache! Użyj przepisanego pliku dziennika na poziomie wyższym niż 2 tylko do debugowania! Poziom 9 będzie rejestrował prawie każdy szczegół dziennika zmian.
AKTUALIZACJA
W Apache 2.4 sytuacja się zmieniła:
OD Aktualizacja do 2.4 z 2.2
Dyrektywy RewriteLog i RewriteLogLevel zostały usunięte. Ta funkcjonalność jest teraz zapewniana przez skonfigurowanie odpowiedniego poziomu rejestrowania dla modułu mod_rewrite przy użyciu dyrektywy LogLevel . Zobacz także sekcję logowania mod_rewrite.
Aby uzyskać więcej informacji na temat LogLevel, zapoznaj się z dyrektywą LogLevel
możesz osiągnąć
RewriteLog "/path/to/rewrite.log"
w ten sposób teraz
LogLevel debug rewrite_module:debug
Odpowiedź „Wpisz jakąś niepotrzebną wartość” nie załatwiła mi sprawy, moja witryna nadal się ładowała pomimo wprowadzonych śmieci.
Zamiast tego dodałem następujący wiersz na początku pliku .htaccess:
To szybko poinformuje Cię, czy .htaccess jest odbierany, czy nie. Jeśli używany jest plik .htaccess, pliki w tym folderze nie zostaną w ogóle załadowane.
źródło
Generalnie każda zmiana w .htaccess powinna mieć widoczne efekty. Jeśli nie ma efektu, sprawdź pliki konfiguracyjne Apache, na przykład:
Powinien zostać zmieniony na
Będziesz mógł zmieniać dyrektywy w plikach .htaccess.
źródło
Być może bardziej logiczną metodą byłoby utworzenie pliku (np. Test.html), dodanie treści, a następnie ustawienie go jako strony indeksowej:
W większości przypadków reguła .htaccess zastąpi konfigurację Apache podczas pracy na poziomie katalogu / pliku
źródło
Aby odpowiedzieć na pierwsze z trzech zadanych pytań, prostym sposobem sprawdzenia, czy plik .htaccess działa, czy nie, jest wywołanie niestandardowego błędu u góry pliku .htaccess:
Przechodząc do drugiego pytania, jeśli plik .htaccess nie jest odczytywany, możliwe, że główna konfiguracja serwera Apache została
AllowOverride
ustawiona naNone
. Dokumentacja Apache zawiera wskazówki dotyczące rozwiązywania problemów w tym i innych przypadkach, które mogą uniemożliwić działanie .htaccess.Na koniec, aby odpowiedzieć na trzecie pytanie, jeśli chcesz debugować określone zmienne , do których odwołujesz się w swojej regule przepisywania, lub używasz wyrażenia , które chcesz ocenić niezależnie od reguły, możesz wykonać następujące czynności:
Wpisz zmienną, do której się odwołujesz, aby upewnić się, że ma oczekiwaną wartość:
Przetestuj wyrażenie niezależnie, umieszczając je w
<If>
dyrektywie. Pozwala to upewnić się, że wyrażenie jest poprawnie napisane lub dopasowane, gdy spodziewasz się, że:Miłego debugowania .htaccess!
źródło
Jeśli masz dostęp do katalogu bin Apache, którego możesz użyć,
httpd -M
aby najpierw sprawdzić załadowane moduły.Po tym proste dyrektywy, takie jak
Options -Indexes
lubdeny from all
potwierdzą, że .htaccess działa poprawnie.źródło
Aby przetestować reguły przepisywania htaccess, po prostu wypełnij adres URL, do którego stosujesz reguły, umieść zawartość htaccess w większym obszarze wejściowym i naciśnij przycisk „Test”.
http://htaccess.mwl.be/
źródło
Dlaczego nie umieścić śmieci w pliku .htaccess i spróbować ponownie załadować apache. Jeśli Apache nie uruchamia się, wiesz, że działa. Usuń śmieci, a następnie załaduj ponownie apache, jeśli ładuje Gratulacje, poprawnie skonfigurowałeś .htaccess.
źródło