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?

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.


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.

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.