Tajemnice Pliku .htaccess Dla Joomla! I Wordpress'a

joomlawordpressstronywww htaccess

Dzisiaj na jednym z forum, pojawiło się zagadnienie pliku .htaccess, ponieważ .htaccess jest domyślnym plikiem, za pomocą którego można zmieniać ustawienia katalogów serwera Apache, to postanowiliśmy opisać jesgo "magiczne" ustawienia szerzej.(Zobacz cz.2)

Mamy nadzieję, że te kilka informacji pomoże w konfiguracji Joomla, Wordpress'a, bądź internetowej strony www, korzystającej z serwera www Apache.

 Plik .htaccess dla Joomla!

Po instalacji Joomla!  nie ma takiego pliku, ale jest htaccess.txt , któremu wystarczy zmienić tylko nazwę na .htaccess

i jest on gotowy do pracy.

joomlawordpressstronywww htaccess02

 Plik .htaccess dla Wordpress

Po instalacji Wordpress'a  nie ma takiego pliku, tworzony jest on dopiero po zapisaniu ustawień, które wykonujemy zaraz po intalacji systemu cms,

 joomlawordpressstronywww htaccess01

łatwo zauważyć, że zarówno w Joomla jak i Wordpress'a, plik znajduje się, w katalogu głównym, to ważne, bo ustawienia, które robimy w pliku, odnoszą się do katalogu, w którym znajduje się plik i wszystkich jego podkatalogów. Można używać kilku plików .htaccess, ale ustawienia z pliku są stosowane tylko wg. tej zasady. Jeśli w którymś z podkatalogu umieścisz plik .htaccess, to od tej pory ustawienia w tym katalogu oraz jego podkatalogach będą sterowane z tego pliku.

Często atak na Twoją stronę internetową www opartą na Joomla lub Wordpress można rozpoznać po killku plikach .htaccess poza katalogiem głównym. 

Przekierowania w pliku .htaccess

Zacznijmy od najczęstszych pytań, czyli przekierowań, bo nie każdy zdaje sobie sprawę, że np adresy http://www.twojastrona.pl/ i http://twojastrona.pl/ to dla wyszukiwarek dwa różne adresy, dlatego trzeba wykonać przekierowanie, na jeden z tych adresów. Jeśli masz stronę internetową opartą na Joomla lub Wordpress, to pamiętaj, że Twoja nowa strona, szybko może otrzymać karę duplicate content od Google, tylko dlatego że nie zostało zrobione przekierowanie na docelową stronę www.

Uwaga: W Joomla po instalacji istnieje plik htaccess.txt, który może być używany po zmianie nazwy na .htaccess, w przypadku Wordpress'a, plik jest tworzony przy pierwszym uruchomieniu i konfiguracji CMS'a

W większości hostingów, taką konfigurację, możemy zrealizować z panelu administratora, ponieważ operator hostingu dostarcza własny plik .htaccess, ale jeśli nie, albo jeśli chcesz rozszerzać konfigurację strony www, to warto utworzyć własny plik. .htaccess, znajduje się w głównym katalogu Joomla lub Wordpress'a.

Wybierając wersję strony wykonujemy wpis w pliku .htaccess

Przekierowanie internetowej strony WWW na adres bez przedrostka WWW, wygląda tak:

RewriteCond %{HTTP_HOST} ^www.twojastrona.pl [NC]
RewriteRule ^(.*)$ http://twojastrona.pl/ [R=301,L]

Przekierowanie internetowej strony WWW na adres z przedrostkiem WWW, wygląda tak:

RewriteCond %{HTTP_HOST} ^strona.pl [NC]
RewriteRule ^(.*)$ http://www.twojastrona.pl/ [R=301,L]

atrybut [NC] sprawia, że nie ma znaczenia wielkość użytych liter we wpisywanym adresie.

Teraz, jeśli zdarzy się, że chcesz przekierować ruch ze starej strony, w bezpieczny sposób przekierować ruch na nowy. Wtedy zapis będzie
wykorzystujemy nasz zapis i robimy:

Przekierowanie strony internetowej na nowy adres strony www

RewriteCond %{HTTP_HOST} ^stary_adres_twojejstrony.pl [NC, OR]
RewriteCond %{HTTP_HOST} ^www.stary_adres_twojejstrony.pl
RewriteRule ^(.*)$ http://www.nowy_adres_twojejstrony.pl/ [R=301,L]

Za pomocą komendy RewriteCond możemy również sprawdzić, czy adres nie prowadzi do pliku, czy do katalogu:

Sprawdzenie Docelowego Przekierowania Strony Internetowej WWW

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteuRule .* index.html [L]

Pierwsza linia, z parametrem !-f sprawdza, czy ścieżka nie prowadzi do pliku, druga z parametrem !-d sprawdza to samo, tylko pod
kątem katalogu. Kod w trzeciej linii określa, że jeśli żaden plik nie zostanie odnaleziony (!-f), wówczas zostanie załadowany plik index.html.

Flagi modułu mod_rewrite na stronie internetowej www

[R = kod] force redirec – pozwala na przekierowanie linku według podanej wartości

[QSA] query string append – powoduje dodanie na końcu całego zapytania query string

[L] last rule – ustanawia linijkę jako ostatnią, reguły nie będą dalej wykonywane

[NC] no case – ignoruje fakt, czy adres wpisywany jest wielkimi, czy małymi literami

[T = MIME type] force MIME type – ustawienie typu MIME

[F] force URL to be forbidden – zwraca błąd 403

[S=liczba] skip next rule(s) – pomija zapisaną liczbę reguł

[N] next round – przetwarzanie od początku

To tylko najczęściej wykorzystywane flagi modułu mod_rewrite, pozostałe można odnaleźć w dokumentacji dostępnej pod adresem http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html

Przekierowanie można wykorzystywać też do innych akcji, np. nic nie stoi na przeszkodzie, aby decydować dokąd chcemy wysłać użytkownika, po kliknięciu w określony adres

Przekierowanie adresu internetowego strony www na katalog

Jeśli chcemy, żeby z adresu http://www.strona.pl/informacje, odwiedzający Twoją stronę zobaczył podstronę znajdującą się w innym katalogu, niż wskazywałby na to adres, to najprościej będzie skorzystać z przekierowania:

Redirect /nazwa_katalogu http://www.twojastrona.pl/plik.php

Zapis ten oznacza, że użytkownik wchodząc do katalogu http://www.strona.pl/nazwa_katalogu, tak naprawdę zostanie przeniesiony na stronę http://www.twojastrona.pl/plik.php

Zaawansowane Ustawienia Pliku .htaccess dla Joomla i Wordpress'a

Żeby zrozumieć dalsze operacje na pliku przekierować, trzeba poznać zmienne i do czego one służą, oto:

Zmienne Globalne Pliku .htaccess :

Zmienne Przeglądarki W Pliku .htaccess

  • HTTP_USER_AGENT – identyfikator przeglądarki
  • HTTP_USER_AGENT – identyfikator przeglądarki
  • HTTP_REFERER – adres z przekierowania
  • HTTP_HOST – adres hosta, który jest wywoływany
  • HTTP_CONNECTION – tryb połączenia
  • HTTP_COOKIE – zawiera cookie
  • HTTP_ACCEPT – dokumenty jakie przyjmuje przeglądarka
  • HTTP_ACCEPT_LANGUAGE – język przeglądarki
  • HTTP_ACCEPT_ENCODING – czy przeglądarka akceptuje skompresowane pliki
  • HTTP_ACCEPT_CHARSET – akceptowane kodowanie dokumentu
  • HTTP_CONNECTION – tryb połączenia

Zmienne Wywołania W Pliku .htaccess

  • REMOTE_ADDR – adres IP użytkownika
  • REMOTE_ADDR – adres IP użytkownika
  • REMOTE – host użytkownika
  • REMOTE_USER – nazwa użytkownika
  • REMOTE_PORT – port wywołania
  • AUTH_TYPE – rodzaj autoryzacji ( Basic/Digest)

Zmienne Informacyjne O Skrypcie Wywołania W Pliku .htaccess

  • SCRIPT_URL – adres logiczny (zmienna z informacją o skrypcie)
  • SCRIPT_URL – adres logiczny (zmienna z informacją o skrypcie)
  • SCRIPT_URI pełen adres wraz z hostem (zmienna z informacją o skrypcie)
  • SCRIPT_FILNAME – nazwa pliku wraz ze ścieżka (zmienna z informacją o skrypcie)
  • SCRIPT_NAME – nazwa skryptu

Zmienne Informacyjne O Zapytaniu W Pliku .htaccess

  • REQUEST_FILNAME – pełna ścieżka do pliku
  • REQUEST_URI – zawiera pełen adres wywołania

Zmienne mod_rewrite W Pliku .htaccess

  • QUERY_STRING – informacja o parametrach przesyłanych do skryptu
  • THE_REQUEST – kompletne wysyłane zapytanie HTTP

Zmienne Serwera W Pliku .htaccess

  • SERVER_ADMIN – e-mail admina
  • SERVER_NAME – adres serwera
  • SERVER_ADDR – adres IP serwera
  • SERVER_PORT – adres portu
  • SERVER_ID – identyfikator
  • SERVER_PROTOCOL – informacje o protokole (np.: zazwyczaj HTTP/1.1)
  • DOCUMENT_ROOT – ścieżka do głównego katalogu

Zmienne Czasowe W Pliku .htaccess

  • TIME_YEAR – obecny rok
  • TIME_MON – miesiąc
  • TIME_DAY – dzień
  • TIME_HOUR – godzina
  • TIME_MIN – minuty
  • TIME – aktualny czas w postaci yyyymmddhhmmss

Pozostałe Zmienne W Pliku .htaccess

  • PATH_INFO zawiera dopełnienie ścieżki
  • REDIRECT_URL oryginalny adres przed przekierowaniem