
Ostatnim razem pisałem o ciekawej i niezwykle przydatnej funkcji php include, która pozwala nam na wczytywanie zawartości plików na strony WWW.
Dziś zajmiemy się konfiguracją naszej witryny z poziomu http. Nie wszyscy projektanci stron wiedzą, że z łatwością możemy przekierowywać konkretne podstrony na inne czy ustalać ścieżki stron błędów.
Wszystko za sprawą jednego pliku wgranego za serwer. Mowa o .htaccess. Tak! Nie posiada on nazwy! Z poziomu Windows jego utworzenie jest bardzo trudne, zapewne nie da się tego zrobić tradycyjnymi sposobami.
W celu jego utworzenia najlepiej ściągnąć dość popularny program o nazwie Total Commander, w nim bez problemów stworzymy plik bez nazwy. Może nie stworzymy, a edytujemy już istniejący plik .txt. Robimy to zaznaczając go prawym przyciskiem myszy i klikając F6 na klawiaturze. Następnie na końcu ścieżki usuwamy wszsytko co jest przed kropką i zmieniamy rozszerzenie .txt na .htaccess.
Wiec do rzeczy, zacznijmy od budowy pliku .htaccess. Ptzykładowy może wyglądać tak:
RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^grzegorzbielak.pl [NC] RewriteRule ^(.*)$ http://grzegorzbielak.pl%{REQUEST_URI} [R=301,L] RewriteRule ^pozostale.php /portfolio.php [R=301,L] |
A teraz zajmijmy się omawianiem poszególnych linijek. Zacznijmy od ustalenia dla naszej witryny jednego, jednolitego adresu bez WWW [będzie on wyglądał tak: http://grzegorzbielak.pl]:
RewriteBase / RewriteCond %{HTTP_HOST} !^grzegorzbielak.pl [NC] RewriteRule ^(.*)$ http://grzegorzbielak.pl%{REQUEST_URI} [R=301,L] |
A jak ustalić konkretny tekst dla błędu 404, a jak konkretny plik dla błędu 403:
ErrorDocument 404 "Brak określonego dokumentu na serwerze!" ErrorDocument 403 /blad403.html |
Oprócz tego plik .htacess daje nam możliwość ustalenia priorytetu dla wczytywania się plików index. Robimy to za pomocą takiej komendy [pliki ładować się będą w kolejności od lewej do prawej]:
DirectoryIndex index.php index.html poprawki.html |
Jest to przydatne, gdy przeprowadzamy poprawki na naszej stronie. Możemy wtedy użyć [nie trzeba usuwać żadnych plików z serwera!]:
DirectoryIndex poprawki.html |
Bardzo przydatne jest też przekierowanie z podanych adresów http na inne [z stary.php na nowy.php]:
RewriteRule ^stary.php /nowy.php [R=301,L] |
Podobnie się ma sprawa jeśli chodzi o przekierowania z subdomen do katalogów:
RewriteCond %{HTTP_HOST} subdomena.grzegorzbielak.pl RewriteCond %{REQUEST_URI} !katalog/ RewriteRule (.*) katalog/ [L] |
Myślę, że wielu grafików freelancerów i projektantów stron WWW skorzysta z tego co oferuje nam plik .htaccess.
Dla opornych przygotowałem ten plik do pobrania.