10 przykładów wykorzystania plików .htaccess



Dzisiaj znów powrócimy do przykładów użycia plików .htaccess, omawiając kolejne dobrodziejstwa które ze sobą niesie. Jak już opisywałem w poprzednim artykule: 4 praktyczne rzeczy, które możesz zrobić z .htaccess, narzędzie to może być bardzo przydatne w rękach sprawnego web developera. Poznaliśmy już sposoby zapobiegania hotlinkowania, blokowania użytkownika o zadanym numerze IP, własnej obsługi błędów oraz przekierowania podczas wprowadzania poprawek w serwisie. Teraz czas na więcej…

W niniejszym artykule, przedstawię kolejnych 10 przykładów wykorzystanie plików .htaccess. Dodatkowo radzę przed wdrażaniem/testowaniem poniższych fragmentów kodu, zrobić sobie kopię zapasową pliku. (tak na wszelki wypadek)

1. Blokowanie żądań wybranych klientów użytkownika (User Agents)

Z wykorzystaniem pliku .htaccess możliwe jest blokowanie żądań od wybranych klientów użytkownika, które z jakiegoś względu stanowią zagrożenie dla naszego serwisu. Jednym z ciekawszych rozwiązań jest uniemożliwienie automatycznego ściągania elementów serwisu przez tychże klientów.

#Blokowanie botów
SetEnvIfNoCase user-Agent ^eCatch [NC,OR]
SetEnvIfNoCase user-Agent ^EirGrabber [NC,OR]
SetEnvIfNoCase user-Agent ^EmailSiphon [NC,OR]
SetEnvIfNoCase user-Agent ^ExtractorPro [NC,OR]
SetEnvIfNoCase user-Agent ^FlashGet [NC,OR]
SetEnvIfNoCase user-Agent ^GetRight [NC,OR]
SetEnvIfNoCase user-Agent ^Widow [NC,OR]
SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
SetEnvIfNoCase user-Agent ^Zeus [NC]

Order Allow,Deny
Allow from all
Deny from env=bad_bot

Nazwy User Agents można dodawać dowolnie, choć trudno jest zabezpieczyć się przed wszystkimi (trzeba je najpierw znać), a dodatkowo klient użytkownika jest identyfikowany poprzez HTTP_USER_AGENT, przez co bardzo łatwo można taki nagłówek zmienić czy usunąć. Ale lepsza jakaś ochroną niż żadna.

2. Przyjazne dla SEO przekierowanie 301

Jeżeli zmieniłeś nazwę domeny lub z jakiego względu potrzebujesz przekierować istniejącą stronę (strony) na inne, a obawiasz się kary ze strony wyszukiwarki Google, to poniższy sposób przekierowania jest właśnie dla Ciebie.

Redirect 301 /strona.html http://www.nowa-domena.com/nowa-strona.html

3. Przekierowanie wszystkich poza wybrańcami

Czasami chcesz, by twoja witryna internetowa była dostępna jedynie dla konkretnych hostów o konkretnych numerach IP. Aby tego dokonać wystarczy zaledwie kilka linijek w pliku .htaccess.

ErrorDocument 403 http://www.twoja-strona.pl
Order deny,allow
Deny from all
Allow from 123.12.12.123
Allow from 234.23.23.234

Tym sposobem wszyscy odwiedzający twoja stronę, nie posiadający podanych numerów IP, zostaną przekierowani z błędem 403 (Zasób zabroniony).

4. Wyłączenie żądania pobierania pliku

W klasycznym scenariuszu, kiedy użytkownik próbuje pobrać plik z naszej strony pokazuje mu się okno dialogowe z opcja otworzenia lub pobrania pliku. Aby zapobiec takiej sytuacji i bez dodatkowego okienka po prostu pobrać plik i zapisać do domyślnej lokacji wystarczy:

AddType application/octet-stream .pdf
AddType application/octet-stream .zip
AddType application/octet-stream .mov

5. Ustawianie strony domyślnej

Plik .htaccess pozwala na jeszcze jeden sprytny trik – mianowicie na zmianę domyślnie otwieranej strony.

#Zmiana domyślnej strony
DirectoryIndex start.html

Dzięki tej jednej linijce, w momencie gdy użytkownik wejdzie na twoja-strona.pl, nie zobaczy treści w pliku index.html, a treść z pliku start.html.

6. Ochrona hasłem plików i folderów

Wykorzystując .htaccess możesz również w bardzo prosty sposób zabezpieczyć pliki, a nawet całe foldery hasłem.

#Ochrona hasłem pliku
AuthType Basic
AuthName "Prompt"
AuthUserFile /home/path/.htpasswd
Require valid-user

# Ochrona hasłem folderu
resides
AuthType basic
AuthName "Katalog ten jest chroniony haslem"
AuthUserFile /home/path/.htpasswd
AuthGroupFile /dev/null
Require valid-user

Należy jednak pamiętać by utworzyć wcześniej plik niezbędny do autentykacji .htpasswd i w zmiennej AuthUserFile podać jego położenie na serwerze.

7. Ustawianie adresu email administratora strony

Prosty przykład wykorzystania pliku .htaccess do podmiany domyślnego adresu email administratora strona na inny, dowolny adres.

ServerSignature EMail
SetEnv SERVER_ADMIN default@domain.com

8. Blokowanie dostępu do pliku .htaccess

Aby uniemożliwić wykorzystanie pliku .htaccess w niepożądany dla nas sposób, wystarczy dodać dodatkową warstwę bezpieczeństwa w samym pliku. Dzięki temu zabiegowi, użytkownik próbujący otrzymać dostęp do pliku dostanie błąd 403. Podobną operację można dokonać na dowolnym pliku znajdującym się na serwerze.

# zabezpieczenie pliku htaccess

 order allow,deny
 deny from all

9. Wymuszenie cache

Poniżej został przedstawiony bardzo prosty przykład wymuszania cachowania wybranych elementów w serwisie. W tagu filesmatch można podać wyrażenie regularne opisujące pliki, na których zostanie wymuszone cachowanie. W podanym przykładzie wyrażenie regularne operuje na rozszerzeniach plików. Dodatkowo zmienna ExpiresDefault definiuje czas przez który pliki będą znajdowały się w cache – tutaj dzień.

FileETag MTime Size

  
       ExpiresActive on
       ExpiresDefault "access plus 86400 seconds"
   

10. Usuwanie www z adresu URL

Po raz kolejny .htaccess okazuje się naprawdę pomocnym narzędziem, tym razem w usuwaniu www z adresu. Jeżeli chcesz pozbyć się przedrostka www, wystarczy:

#usuwanie www z adresu URI
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

Przedstawione w artykule przykłady wykorzystania pliku .htaccess to zaledwie wierzchołek góry lodowej możliwości jakie za sobą niesie. Nie wykluczone, że w którymś z najbliższych artykułów będę kontynuował wątek htaccessa, podając inne przykłady jego wykorzystania i być może trochę głębiej wniknąć w mechanizmy którymi dysponuje.Tymczasem…

Zapisz się na RSS by dowiadywać się o nowościach w serwisie!Zapisz się na RSS w blog.alchemycode.pl

Related Posts with Thumbnails
Prześlij dalej:
Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

10 komentarze do “10 przykładów wykorzystania plików .htaccess”

Bardzo fajny artykuł, fajnie trafić na coś, co nie jest kolejną bezużyteczną listą :) Napisz coś cURLu dla PHP :)

commenter

czekam na kontynuację tematu .htaccess. Dobra robota :)

commenter

dzięki :) dopisałem sobie temat cURL-a do swoich todo-sów.

commenter

dzięki :) niewątpliwie do tematu jeszcze powrócę.

[...] adresem http://blog.alchemycode.pl/2010/01/27/10-przykladow-wykorzystania-plikow-htaccess/ znalazłem praktyczny tutorial (a nawet nie tutorial, ale gotowiec) z kodem najczęściej [...]

commenter

Witam

Zgadzam się z Tobą napisane, bardzo dobry tekst. Myślę, że temat nie jest do końca wyczerpany. Czekam na więcej…

commenter

Witam,
Ciekawe zestawienie !

A jak będzie wyglądał kod aby użytkownikom z wybranym IP (np redaktorom) serwować inny adres w serwisie a reszcie – jeszcze inny adres?

commenter

e tam po co się tego wszystkiego uczyć: http://htaccess.lapti.pl

commenter

Myślę, że taki kod wyglądał by dla przykladu:

SetEnvIf REMOTE_ADDR 192.76.123.4 REDIR=”redir”
RewriteCond %{REDIR} redir
RewriteRule ^/$ /inna_strona.html

Zostaw komentarz:

Imię (wymagane):
Email:
Strona www:
Komentarz (wymagany):
XHTML: W komentarzach możesz korzystać z nastepujących tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
-