Jak prześledzić Apache 301 Moved Permanently?

9

Na moim komputerze jest jeden wirtualny host, do którego mam dostęp lokalnie. Używam apache2 pod Windows 7.

Podczas uzyskiwania dostępu do tego hosta widzę w Fiddler, że serwer przekierowuje przeglądarkę do innej zdalnej strony z odpowiedzią

301 Moved Permanently

Ale absolutnie nie mogę znaleźć, gdzie jest skonfigurowany. Przeszukuję wszystkie pliki .htaccess w poszukiwaniu adresu URL strony docelowej, wszystkie pliki w danym wirtualnym hoście dla tego adresu URL, cały katalog Apache ...

Jak prześledzić, co powoduje, że Apache dokonuje tego przekierowania?

Suzan Cioc
źródło

Odpowiedzi:

5

Robi to niekoniecznie konfiguracja Apache - czy Apache przekazuje żądanie do dynamicznego generatora treści?

Poszukaj dwóch rzeczy w konfiguracji Apache; Redirectoraz RewriteRuledyrektywy z Rflagą. Jeśli nie ma ich na miejscu, to Apache nie dokonuje przekierowania (z wyjątkiem /directorynameprzekierowywania na /directoryname/, ale to nie brzmi jak w tym przypadku), i musisz spojrzeć na kod dynamiczny, który przekazuje Apache prośba do.

Shane Madden
źródło
Dzięki Shane, wyciągałem włosy, próbując dowiedzieć się, dlaczego mój post gubił się dzięki przekierowaniu 301. Okazało się, że przekierowanie / nazwa_katalogu do / nazwa_katalogu / .... pominęło oczywistość. Dzięki!
Tevo D,
1

Dzięki za powyższą odpowiedź i wskazuje mi właściwy kierunek. W moim przypadku przekierowanie 301 jest spowodowane regułą przepisywania całej witryny.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^voicent.com
RewriteRule ^/(.*)$ http://www.voicent.com/$1 [L,R=301]

Powyższa reguła wymusza użycie kanonicznej nazwy hosta. Sprawia, że ​​każdy adres URL zaczyna się od www.domain.com zamiast domain.com. Możesz to dodatkowo zweryfikować w dzienniku dostępu apache.

Wacker
źródło