Grupa MagazynyInternetowe
Online: 903
Istnieją różne sztuczki, o których wiele osób słyszało, ale nie każdy je stosuje. Jeżeli prowadzisz stronę internetową i masz dostęp do pliku .htaccess na serwerze Apache, co obecnie jest już standardem, możesz w prosty sposób całkowicie zmienić jej funkcjonowanie.
Paulina Roszczyńska
Plik .htaccess jest domyślnym plikiem, za pomocą którego można zmieniać ustawienia serwera Apache dla katalogów. Mechanizm .htaccess jest zazwyczaj domyślnie włączony, jeśli jednak administrator z jakiejś przyczyny w pliku konfiguracyjnym Apache'a zawarł opcję
AllowOverride None
to .htaccess nie zadziała. Dowcipni administratorzy mogą zrobić nam niespodziankę i w ustawieniach Apache'a zadeklarować inną niż domyślną nazwę .htaccess. Umożliwia im to dyrektywa
AccessFileName .ustawienia
W takim przypadku zamiast .htaccess będziemy edytować plik .ustawienia, ponieważ to właśnie on odpowiadać będzie za konfigurację serwera. Na szczęście ma to miejsce bardzo rzadko.
Zazwyczaj plik .htaccess umieszczany jest w głównym katalogu, jednak można stworzyć go w każdym innym istniejącym. Zapisy zawarte w tym pliku funkcjonują dla danego katalogu oraz wszystkich podkatalogów w nim się znajdujących. Co można osiągnąć za pomocą tego pliku?
Okaże się przydatny przy wszelkiego rodzaju przekierowaniach, tworzeniu komunikatów błędów i zmiany sposobu dostępu do naszej strony. Przy każdorazowym odświeżeniu plik ten jest ponownie wczytywany, w związku z tym każda zmiana jest od razu widoczna.
Kiedy mamy już pewność, że istnieje możliwość zmiany ustawień za pomocą pliku, należy go stworzyć (chyba że istnieje) i zabrać się do edycji. Zbiór .htaccess powinien mieć uprawnienia 644 (nadane przez polecenie chmod). Pozwoli to na dostęp do pliku przez serwer, ale uniemożliwi jego zmianę z poziomu przeglądarki:
Chmod 644 .htaccess
Zanim przystąpimy do pierwszych zapisów w pliku, warto wspomnieć, że komentarze w pliku .htaccess wstawia się poprzedzając je znakiem #
1. #komentarz 2. #kolejna linia komentowana
Po każdej linii zapisu musi także nastąpić enter. Pisanie jednym ciągiem bez załamywania wierszy może sprawić, że wpisy nie będą funkcjonować. Tak samo ostatnia linia w pliku .htaccess powinna być linią pustą.
Na początek warto zacząć od określenia
domyślnego pliku strony WWW. W tym celu
wykorzystamy dyrektywę DirectoryIndex.
Można podać kilka nazw plików, trzeba jednak
pamiętać o rozdzieleniu ich spacjami. Kolejność
ma znaczenie – jeśli pierwszy nie zostanie
znaleziony, automatycznie zostanie wczytany
drugi.
DirectoryIndex index.html index.php awaria.html
Powyższa instrukcja pokazuje kolejność wczytywania plików. Jeżeli zostanie odnaleziony plik index.html, to właśnie on będzie traktowany jako domyślny, a w przypadku jego braku, domyślnym będzie index.php itd. Korzystanie z tego typu dyrektywy bywa przydatne, jeśli główny plik strony ma inną nazwę niż index.php (wtedy zapis może wyglądać następująco):
DirectoryIndex start.html
A także, gdy planujemy zmiany na naszej stronie WWW. Wtedy bez zbędnej przebudowy możemy stworzyć stronę awaryjną, którą ustanawiamy jako domyślną:
DirectoryIndex awaria.html
Po skończeniu wprowadzania zmian można bez problemu powrócić do wcześniejszych ustawień.
MimeType to rozszerzenia, które zwracane są przeglądarce po znalezieniu na serwerze danego typu pliku. Dany typ pliku powoduje konkretną reakcję ze strony przeglądarki. Zazwyczaj jest to otwarcie programu obsługującego plik o tym rozszerzeniu. Większość rozszerzeń jest zdefiniowana w domyślnej konfiguracji serwera, jednak czasem może się zdarzyć, że będziemy chcieć dodać lub zmienić daną definicję np.:
1. AddType text/html .txt 2. #pliki z rozszerzeniem .txt będą odczytywane jako pliki .html
Taki zapis sprawia, że wszystkie pliki .txt będą rozpoznawane jako zwykle pliki .html. Aby wymusić otwieranie plików skompresowanych w odpowiednich aplikacjach, wystarczy skorzystać z odpowiedniej definicji. Często w przeglądarkach ten typ plików jest odczytywany w formie niezrozumiałego tekstu.
1. AddType application/zip .zip 2. AddType application/x-gzip .gz 3. AddType application/x-gtar .gtar 4. AddType application/x-rar-compressed .rar 5. AddType application/octet-stream .dmg 6. AddType application/x-7z-compressed .7z
Sposób przypisania większości znanych formatów do aplikacji zawarto w listingu 1.
Listing zwinięty - 46 linii
Możemy również wymusić na przeglądarce pobieranie plików zamiast ich automatycznego odczytywania:
AddType application/octet-stream .pdf .gz
Taki zapis spowoduje, że dokumenty w formacie .pdf oraz .gz będą pobierane, a nie otwierane przez domyślną aplikacje.
Warto wspomnieć o jeszcze jednej prostej, ale przydatnej opcji, której nie sposób pominąć. Edytując plik .htaccess, można szybko dokonać zmiany kodowania dokumentów:
1. AddDefaultCharset ISO-8859-1 2. AddDefaultCharset ISO-8859-2
Powiązane publikacje
Komentarzy: 19
Dzień dobry,
Dzięki informacjom zawartym w powyższym artykule udało mi się rozwiązać bardzo poważny problem związany ze złym czy też niewłaściwym działaniem moich dwóch stron, które niechciały działać na tym samym serwerze.
Podziękowania dla Pani Pauliny Roszczyńskiej.
Z poważaniem.
Jarzynka Marek
coś nie działa tak jak trzeba, mam problem z hasłem, jeżeli zakoduje md5 to nie mogę się wbić na serwer. Wie może ktoś jakim algorytmem kodowane jest hasło?? Działam na serwerze linux`owym
Świetna robota, podoba mi się. Wszystko bez problemów zrozumiałem i z pewnością inni także.
Ciekawy artykuł i dobrze napisany ... chociaż powiem szczerze, że żółte rameczki w pewnym momencie zaczęły mnie razić ![]()
Pozdrawiam ![]()
a ja mam pytanko bo nie wszystko rozumiem jak nalezy, mianowicie chce by po wpisaniu do przegladarki moja.domena.org/phpmyadmin/ przekierowywalo kazdego usera do strony moja.domena.org (to jest jasne) ale jednoczesnie chce by po wejsciu na stronie glowna i zalogowaniu sie do serwisu oraz po wybraniu odpowiedniego linka byla mozliwosc wejscia w ten katalog, konkretnie mozliwosc wywolania http://forum.magazynyinternetowe.pl/index.php? dziekuje za pomoc
Chciałem zablokować dostęp z "zewnątrz" do playlisty w formacie xlm. Playlista jest wywoływana przez playera flash wiec odpada metoda HTTP_REFERER odpada bo zmianna ma wartość pustą.
deny from 123.456.789.000
oczywiście, nie ma takiego IP
co powoduje błąd zw. z .htaccess
Kiedyś używałem Rewrite do przenoszenia ze starego na nowy adres strony. Niestety oszukiwało to statystyki, bo "gubił się" HTTP_REFERER i w efekcie przeszedłem na php header('Location: ....');. Być może niesłusznie i htacces może również "przemycić" adres z przekierowania.
Jest ktoś w stanie mi pomóc?
Wreszcie się znalazł jeden silny który tego dokonał i przełamał tabu htacces
Gratulacje i wielkie podziękowania
Świetny artykuł, szczególnie że ma podobny się na papierze (przyp. IM 1/08) ![]()
Popieram zdanie przedmówców. W końcu wszystkie informacje które są potrzebne znajdują się w jednym miejscu. Na dodatek ładnie, przejrzyście przedstawione.
Gratuluję Paulino dobrej redakcji.
Redaktor prowadzący serwisu MagazynyInternetowe.pl, ponadto pisze artykuły do Internet Maker i Magazyn Internet. Wolne chwile lubi spędzać na długich spacerach pod miastem.
Artykuły tego autora:
Po przeczytaniu poprzednich części publikacji wiesz już jak zainstalować Apache oraz doinstalować do niego PHP. Duet ten nie jest jednak wystarczający dla spełnienia podstawowych potrzeb tworzenia współczesnych aplikacji dla internetu. Potrzebujesz jeszcze bazy danych. Przeczytaj ten artykuł, aby dowiedzieć się jak ją zainstalować.
Polecamy:
Na skróty:
Magazyny Internetowe| Co za ile| Programy| Praca| Magazyn Internet| Internet Maker| Web Toster| ForumNasze serwisy: