Przekierowanie Htaccess i jego ustawienia

. Pliki .htaccess mogą znajdować się w katalogu głównym witryny (np. /Home /user /sitename /) lub jej podkatalogach. Służą do organizowania przekierowań użytkowników z jednej domeny lub dokumentu na serwer WWW do innej. Każdy plik .htaccess zawiera zestaw reguł (dyrektyw), pod którym serwer sieci Web przekierowuje użytkownika do danej strony. Wiele systemów zarządzania treścią korzysta z ustawień przekierowania .htaccess. Można edytować pliki stworzone przez CMS, wprowadzając nowe wytyczne przekierowywać lub tworzyć własne pliki .htaccess ręcznie.


Tworzenie pliku .htaccess

Pierwszy etap konfigurowania readresatora .htaccess polega na utworzeniu samego pliku. Twój .htaccess powinien być zwykłym plikiem tekstowym. Oznacza to, że trzeba go utworzyć w programie do edycji tekstu, który może generować pliki tekstowe (.txt).
  • Na komputerze z systemem Windows możesz korzystać z Notatnika, który jest jednym ze standardowych wbudowanych programów.
  • Na Macu możesz użyć TextEdit. Najpierw otwórz menu Ustawienia w TextEdit i wybierz "Prosty tekst" w sekcji "Nowy dokument". Następnie możesz rozpocząć proces tworzenia nowego dokumentu tekstowego textEdit dla pliku .htaccess.
  • W systemie Linux można użyć dowolnego z wielu edytorów tekstu dostępnych dla dystrybucji - zarówno konsola (vi, nano), jak i grafika (na przykład gedit).
  • Gdy zachowujesz ten dokument jako obowiązkowynazwij jego htaccess.txt. Jeśli zapiszesz go po prostu jako .htaccess, twój komputer ukryje plik. Dzieje się tak dlatego, że pliki rozpoczynające się w punkcie są traktowane jako pliki systemowe.


    Pobieranie pliku .htaccess na serwerze

    Aby uzyskać poprawne przekierowanie pliku .htaccess, plik musi zostać pobrany do katalogu, w którym chcesz ustawić przekierowania. Zazwyczaj jest to katalog plików HTML (/var/www/vhosts/example.com/httpdocs/), ale możesz go przesłać do dowolnego podkatalogu na swoim serwerze. Po pobraniu pliku zmień jego nazwę na .htaccess. W tym momencie plik może stać się niewidoczny dla klienta FTP, ponieważ ma teraz format pliku systemowego. Wielu klientów FTP umożliwia przeglądanie ukrytych plików i folderów - zaleca się włączenie tej funkcji. Aby uzyskać instrukcje, jak je włączyć, zapoznaj się z dokumentacją klienta.

    Sprawdzanie .htaccess

    Najprostszym sposobem sprawdzenia, czy serwer WWW przetwarza plik .htaccess, jest celowe uszkodzenie. Edytuj plik .htaccess, aby pierwsza linia zaczynała się od słowa Test: Test # Zainstaluj stronę główną DirectoryIndex page.html page.txt Po ponownym uruchomieniu strony głównej witryny zobaczysz następujący błąd (zobacz poniższe zdjęcie).
    Jeśli pojawi się ten błąd, to tak naprawdę jest OK - serwer przetwarza twój plik i odczytuje z niego dyrektywy przekierowujące. Jeśli nie, upewnij się, że plik i katalog, w którym się znajduje, są czytelne i, jeśli to konieczne, zmodyfikowaneprawa dostępu

    nieco .htaccess przekierowanie priorytetów

    Reguły .htaccess to rekurencyjne. Dyrektywa ta, zapisana w pliku /home/user/sitename_html/.htaccess być stosowane do tego katalogu i jego folderów podrzędnych - z wyjątkiem jeśli niektóre specyficzne zasady jest anulowany używając dyrektyw w pliku .htaccess, która jest zależna Katalog . W ten sposób, poprzez .htaccess ustawienia przekierowania, które są określone plik na wyższym poziomie nadpisane pliki ustawień, które są na niższych poziomach. Na przykład, jeśli chcesz włączyć przekierowanie przez większość swojej stronie, ale go wyłączyć za pomocą katalogu, można utworzyć osobny zestaw odpowiednio .htaccess i przesłać go tylko do tego katalogu. Podobnie niższym poziomie plików .htaccess zastępują ustawienia PHP pliki php.ini vhost.conf i na wyższych poziomach, chyba nadpisują wyraźnie zakazane dla tych plików. Wreszcie, kolejność zasad w pliku .htaccess przekierowanie może być ważne dla niektórych typów dyrektyw. Lista reguł jest obsługiwana sekwencyjnie od początku do końca; Dyrektywy na początku pliku zostaną wykonane jako pierwsze.

    .htaccess przekierowanie: podstawowe typy

    Istnieją różne rodzaje przekierowań, które mogą być wykonywane poprzez pliki .htaccess. Przeanalizujemy je i rozpatrzymy każdy typ, zanim nauczymy się ich używać.

    301: przekierowanie regularnie

    Jest to najczęstszy rodzaj spedycji i prawdopodobnie ten, który często można regulować. W pliku.Htaccess 301 przekierowuje stronę, aby wskazać, że jej stary adres URL (przekazywany adres URL) nie jest już używany.

    302: Tymczasowe przekierowanie

    Przekierowanie 302 wskazuje, że stary adres URL strony jest tymczasowo wyłączony, ale wkrótce zostanie przywrócony. W przypadku serwera Apache ta reguła przekierowania jest używana domyślnie.
    Dlatego przed skonfigurowaniem przekierowania .htaccess należy określić, czy nastąpi stałe czy tymczasowe przekierowanie. W przypadku przykładów w tym artykule użyjemy przekierowania 301.

    Przykłady skryptów przekierowania

    Najbardziej typowe przykłady przekierowań .htaccess są wymienione poniżej. Aby użyć dowolnego z nich, musisz otworzyć utworzony plik .htaccess za pomocą dowolnego edytora tekstów i wprowadzić w nim niezbędny przykład kodu. Uzyskany kod, moduł przeprogramowywania (mod_rewrite) musi być włączony na serwerze WWW Apache. Aby to zrobić, musisz wykonać kilka czynności w zależności od systemu operacyjnego. W systemie Windows wykonaj następujące czynności:
  • Zlokalizuj i otwórz plik .http.conf. To w katalogu zainstalowałeś Apache.
  • Utwórz kopię zapasową http.conf, aby w razie potrzeby przywrócić plik, jeśli popełnisz jakiekolwiek błędy.
  • Znajdź wiersz pliku moduły #LoadModule rewrite_module /mod_rewrite.so i odkomentuj (usuń znak #).
  • Znajdź blok tagów i zamień go na Opcje Wszystkie AllOverride All.
  • Znajdź wszystkie odniesienia "AllowOverride None" i zamień je wszędzie za pomocą "AllowOverride All".
  • Zrestartuj serwer WWW i przeglądarkę.
  • Wystarczy uruchomić na Linuksie w terminalu:sudo a2enmod rewrite To polecenie uruchomi moduł lub raport, że moduł już działa. Aby wprowadzić nowe zmiany, uruchom ponownie Apache za pomocą polecenia w terminalu: sudo service apache2 restart
    Teraz możemy zacząć edytować plik .htaccess i studiować najczęstsze wytyczne skierowania. 1. przekierowanie z jednej strony na drugą .htaccess: przekierowująca 301 /retiredpage.html http://www.example.com/newpage.html 2. folderu do przodu (z zawartością) RedirectMatch 301 ^ /olddir /http: //www.yourdomain.com/newdir/3. .htaccess przekierowanie strony przy usuwaniu WWW: RewriteEngine na RewriteCond% {HTTP_HOST} ^ www.sitename.com $ [NC] RewriteRule ^ (. *) $ http://sitename.com/$ 1 [L, R = 301] 4. przekierowania dodanie WWW! RewriteEngine na RewriteCond% {HTTP_HOST} ^ www.samplehost.com $ [NC] RewriteRule ^ (. *) $ http://www.samplehost.com/$ 1 [L, R = 301] 5. przekierowanie do innej .htaccess domeny (prowadzenie cała strona): RedirectMatch 301 ^ $ http://www.yoursite.com 6-plików .htaccess przekierowanie HTML do PHP-pliki (*). : RedirectMatch 301 html $ http (*).:. //www.examplesite.com$1.php 7. Przeniesienie stron TION z dodatkiem HTTPS (. *) RewriteCond% {HTTPS} się RewriteRule https: //% {Server} /$ 1 [R = stała L] 8. wymienić wszystkie litery w adresie URL adresie mały: RewriteMap LC int: tolower Ten fragment kodu należy dodać do httpd.conf serwera WWW. Następnie otwórz plik i zrobić .htaccess: RewriteEngine On RewriteCond% {REQUEST_URI} [A-Z] RewriteRule. $ {LC:% {REQUEST_URI}} [R = 301, l] 9. Użycie wyrażeń regularnych. Reguły przekierowania często zawierają znaki złożone w wyrażeniach regularnych. Dzięki temu serwer będzie dokładnie wiedział, co chcesz zmienić w adresie URL. Jednakże, wyrażenia regularne mogą być trudne do zrozumienia na pierwszy rzut oka. Oto kilka typowych elementów, które możesz zobaczyć i wykorzystywać w regułach przepisywania URL:a także konkretne przykłady ich użycia:
  • ^: początek linii zastępczej;
  • $: koniec linii zastępczej.
  • Przykład: wyrażenie regularne ^ folder1 $ daje sygnał do znalezienia i zamiany tekstu "folder1" wewnątrz linku.
  • . : dowolny znak, który nie jest karnetem (na przykład a, B, 3);
  • *: wskazuje, że poprzedni tekst można powtarzać w nieskończoność;
  • Przykład: wyrażenie regularne ^ uploads. * $ Umożliwia zastąpienie tekstu "uploads2009", "uploads2010" i tak dalej; Wyrażenie regularne ^. * $ Oznacza "znajdź wszystko". Jest to przydatne, jeśli nie wiesz, co użytkownik może wprowadzić w tekście adresu URL.
  • (): Wybierz fragment tekstu, który powinien być użyty w regule jako wartość zmiennej $ 1. Jest to konieczne, na przykład, aby przetwarzać żądania dotyczące plików, które muszą być takie same zarówno dla starej, jak i nowej wersji adresu URL.
  • Błąd 404 nie odnaleziony

    Czasami występują błędy w konfiguracji przekierowania. Rozważmy główne przyczyny, dla których przekierowanie .htaccess może nie działać. Błąd 404 Not Found, który występuje podczas przekierowań, jest powszechny. W takim przypadku dokładnie sprawdź adres URL wygenerowany na pasku adresu. Czy istnieje wymagany plik w nowej lokalizacji na serwerze określonym przez regułę przekierowania? Może być konieczne skopiowanie plików ze starej lokalizacji do nowej lokalizacji lub rozszerzenie reguły przekierowania, aby pod nieobecność wymaganego łącza do pliku nastąpiło przekierowanie na stronę główną witryny. Jeśli adres URL jest po prostu niepoprawny (na przykładhttp://example.com/folder1//file.html - zwrócić uwagę na dwa ukośniki), trzeba sprawdzić zasady składni skierowania.

    Nieskończony URL, limit czasu lub cykl

    Jeśli utworzone przekierowanie URL adres jest zbyt długi, zbyt długi lub strona nie ładuje się, czy Twoja przeglądarka daje komunikat o błędzie przekierowanie mogącą odwrócić pewne zasady kolidują ze sobą. Musisz sprawdzić cały plik .htaccess w celu przekierowania reguł, które mogą się pokrywać z innymi regułami. Możesz również sprawdzić pliki .htaccess w podkatalogach. Zauważ, że FTP nie pokaże plików .htaccess, jeśli nie obejmują zdolność do wyświetlania ukrytych plików i folderów. Ponadto możesz włączyć przekierowanie na stronach HTML i PHP. Sprawdź stronę, która jest przyczyną problemu wewnętrznego przekierowania. Dodanie [L] Przekierowanie zasady mogą pomóc w niektórych przypadkach, ponieważ serwer komenda zatrzymania flagi próbuje przekierować adres URL po zastosowaniu zasad.

    Jak dokonać przekierowania bez .htaccess

    Na koniec, należy rozważyć, jak zrobić przekierowanie adresów URL bez edycji pliku .htaccess, używając serwera wirtualnego hosta Apache. Nawiasem mówiąc, ta metoda jest prostsza niż tworzenie reguł dla strony .htaccess. Otwórz plik konfiguracyjny vhosta edytor tekstu (httpd.conf), który zazwyczaj znajduje się w katalogu /etc /apache2 /sites /sitename. Wybrana próbka pliku pokazuje przekierowanie: NazwaSerwera www.mysite.com ServerAlias ​​www.mysite.comPrzekierowanie /http://mysite.com Powyższa konfiguracja przekierowuje wszystkie żądania dla domeny bez poddomeny WWW. Aby przekierować wszystkie żądania domeny z poddomeną WWW, zmodyfikuj konfigurację, jak pokazano poniżej. Nazwa serwera anywebsite.com SerwerAlias ​​anywebsite.com Przekierowanie /http://www.anywebsite.com Uruchom ponownie Apache, a strona zostanie poprawnie przekierowana. Powyższa metoda jest najłatwiejsza i łatwiejsza do wykonania niż przekierowanie z jednej strony do drugiej w htaccess.

    Powiązane publikacje