Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
POTĘGA PLIKU .HTACCESS
WOJCIECH KLOCEK
Joomla Day 2016 - Gliwice
Czym jest .htaccess ?
Plik sterujący zasadami zachowań serwera Apache
Jest odpowiednikiem web.config w IIS oraz pliku
konf...
Co można zrobić za pomocą .htaccess
Ustawienia dostępów
Szyfrowanie katalogów
Przekierowania URL
Ustawianie czasu przechow...
Ustawienia obsługi w konfiguracji
Apache
Domyślnie mechanizm obsługi .htaccess jest
włączony
Wyjątki:
AllowOverride None
A...
Gdzie umieścić plik .htaccess?
Katalog główny witryny
Katalog administracyjny
Każdy katalog witryny
Parę przydatnych informacji
CHMOD 644
#komentarz
Każda linia powinna kończyć się Enterem
Ostatnia linia pliku powinna być ...
Określanie domyślnego pliku strony
www
DirectoryIndex index.html index.php jakisplik.html
DirectoryIndex strona-awarii.html
Zmiana powiązań typów plików
AddType text/html .txt
AddType application/zip .zip
AddType text/css .css
AddType application...
Zmiana powiązań typów plików
Wymuszenie pobrania pliku
AddType application/octet-stream .pdf .gz
Szybka zmiana kodowania d...
Typy MIME w mod_rewrite
AddType application/x-7z-compressed .7z
RewriteRule ^(.+.php)s$ [T=application/x-httpd-php-source]
Blokowanie dostępu do strony
wg domeny oraz blokowanie botów
RewriteCond %{HTTP_REFERER} niechciany.com [NC]
RewriteRule ....
Blokowanie dostępu do strony wg
adresu IP
deny from 123.456.789.000
deny from all
deny from all
allow from 123.456.789.000...
ForceType zamiast
mod_rewrite
Jeśli mod_rewrite jest na serwerze wyłączony
Założenie: zamiast www.strona.pl/index.php chce...
Dostęp do katalogów
Używany głównie do blokowania dostępu do zasobów
przez inne witryny
Options – Indexes
Options +Indexes...
Szyfrowanie katalogów
http://www.tools.dynamicdrive.com/password/
http://www.htaccesstools.com/htpasswd-generator/
Tworzym...
Własne strony błędów
Głównie strony błędów 4xx i 5xx
ErrorDocument 404 /errors/404.html
ErrorDocument 404 http://www.jakas...
Metaznaki w wyrażeniach
regularnych
. – dowolny znak
^ - początek ciągu
$ - koniec ciągu
+ - znak występujący raz lub więc...
Przyjazne linki
Options FollowSymLinks
RewriteEngine On
RewriteRule ^index.html$ index.php [L]
Założenie:
www.strona.pl/ar...
Przyjazne linki
J!Rzeczywistość
Adres artykułu:
strona.pl/index.php?option=com_content&task=view&id=1&Itemid=26
RewriteRul...
Przekierowania domeny
Z www i bez www
Przekierowanie z WWW na adres bez WWW:
RewriteCond %{HTTP_HOST} ^www.strona.com [NC]...
Przekierowania domeny
Stara strona na nową:
RewriteCond %{HTTP_HOST} ^stary_adres.com [NC, OR]
RewriteCond %{HTTP_HOST} ^w...
Przekierowania ciąg dalszy
Przekierowania starych adresów podstron na nowe:
Redirect /katalog http://www.strona.pl/plik.ph...
Subdomeny
Przekierowanie subdomeny na odpowiedni katalog bez
konieczności wprowadzania zmian w panelu
administracyjnym dom...
Subdomeny
W przypadku wielu subdomen:
RewriteCond %{HTTP_HOST} sub.strona.pl
RewriteCond %{REQUEST_URI} !sub/
RewriteRule ...
Subdomeny
Ostatecznie:
RewriteCond %{HTTP_HOST} !^(www.)?strona.pl$[NC]
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule .* ...
Subdomeny
Wykorzystanie wyrażeń regularnych:
RewriteCond %{HTTP_HOST} strona.pl [NC]
RewriteCond %{HTTP_HOST} (.*).strona....
Flagi modułu mod_rewrite
 [R = kod] – pozwala na przekierowanie linku według
podanej wartości
 [QSA] – powoduje dodanie ...
Czasy przechowywania w pamięci
podręcznej
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault "access plus 1 month„
E...
Zmiana wersji PHP
W przypadku braku możliwości zmiany w
panelu hostingu
W przypadku braku obsługi php.ini
AddHandler appli...
Power .htaccess dla Joomla!
Plik dla Joomla 3.6.2
http://morphic.pl/upload/htaccess.rar
W przypadku pozostałych wersji pro...
Dziękuję za uwagę
Potęga pliku .htaccess
Upcoming SlideShare
Loading in …5
×

Potęga pliku .htaccess

676 views

Published on

Prezentacja z Joomla! Day Poland 2016

Published in: Design
  • Be the first to comment

Potęga pliku .htaccess

  1. 1. POTĘGA PLIKU .HTACCESS WOJCIECH KLOCEK Joomla Day 2016 - Gliwice
  2. 2. Czym jest .htaccess ? Plik sterujący zasadami zachowań serwera Apache Jest odpowiednikiem web.config w IIS oraz pliku konfiguracyjnego NGiX Pozwala zrobić dużo więcej niżWam się wydaje
  3. 3. Co można zrobić za pomocą .htaccess Ustawienia dostępów Szyfrowanie katalogów Przekierowania URL Ustawianie czasu przechowywania elementów witryny Ustawianie domyślnych aplikacji dla plików o danym rozszerzeniu Wiele innych rzeczy
  4. 4. Ustawienia obsługi w konfiguracji Apache Domyślnie mechanizm obsługi .htaccess jest włączony Wyjątki: AllowOverride None AccessFileName .zabezpieczenia
  5. 5. Gdzie umieścić plik .htaccess? Katalog główny witryny Katalog administracyjny Każdy katalog witryny
  6. 6. Parę przydatnych informacji CHMOD 644 #komentarz Każda linia powinna kończyć się Enterem Ostatnia linia pliku powinna być pusta
  7. 7. Określanie domyślnego pliku strony www DirectoryIndex index.html index.php jakisplik.html DirectoryIndex strona-awarii.html
  8. 8. Zmiana powiązań typów plików AddType text/html .txt AddType application/zip .zip AddType text/css .css AddType application/x-httpd-php .php AddType application/x-shockwave-flash .swf AddType application/pdf .pdf AddType video/x-ms-wmv .wmv AddType image/jpg .jpg AddType application/x-bittorrent .torrent
  9. 9. Zmiana powiązań typów plików Wymuszenie pobrania pliku AddType application/octet-stream .pdf .gz Szybka zmiana kodowania dokumentów AddDefaultCharset ISO-8859-2
  10. 10. Typy MIME w mod_rewrite AddType application/x-7z-compressed .7z RewriteRule ^(.+.php)s$ [T=application/x-httpd-php-source]
  11. 11. Blokowanie dostępu do strony wg domeny oraz blokowanie botów RewriteCond %{HTTP_REFERER} niechciany.com [NC] RewriteRule .* - [F] RewriteCond %{HTTP_USER_AGENT} ^[Ww]eb[Bb]andit [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Default Browser 0 [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Download Demon [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Bot mailto:craftbot@yahoo.com [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^sitecheck.internetseer.com [NC,OR]
  12. 12. Blokowanie dostępu do strony wg adresu IP deny from 123.456.789.000 deny from all deny from all allow from 123.456.789.000 Order allow, deny Przypadek: order allow, deny deny from 123.456.789 deny from 000.123.4 allow from all
  13. 13. ForceType zamiast mod_rewrite Jeśli mod_rewrite jest na serwerze wyłączony Założenie: zamiast www.strona.pl/index.php chcemy wyświetlić www.strona.pl/index DirectoryIndex index ForceType application/x-httpd-php Dodatkowo: ForceType text/html
  14. 14. Dostęp do katalogów Używany głównie do blokowania dostępu do zasobów przez inne witryny Options – Indexes Options +Indexes Options +Indexes IndexIgnore *gif *jpg *.png .?* g*
  15. 15. Szyfrowanie katalogów http://www.tools.dynamicdrive.com/password/ http://www.htaccesstools.com/htpasswd-generator/ Tworzymy plik .htpasswd Zawartość: użytkownik:hasło Np. uzytkownik1:jf05LdXAvmanY Tworzymy .htaccess AuthName "Strefa zaszyfrowana" AuthType Basic AuthUserFile /home/users/nazwakonta/public_html/joomla/.htpasswd AuthGroupFile /dev/null require valid-user
  16. 16. Własne strony błędów Głównie strony błędów 4xx i 5xx ErrorDocument 404 /errors/404.html ErrorDocument 404 http://www.jakasstrona.pl ErrorDocument 404 "Brak dokumentu na serwerze - przepraszamy"
  17. 17. Metaznaki w wyrażeniach regularnych . – dowolny znak ^ - początek ciągu $ - koniec ciągu + - znak występujący raz lub więcej * - zero lub więcej wystąpień znaku ? – zero lub jedno wystąpienie znaku ! – negacja wyrażenia ( - rozpoczęcie grupowania [ - rozpoczyna klasę znaków, np. [0-9]
  18. 18. Przyjazne linki Options FollowSymLinks RewriteEngine On RewriteRule ^index.html$ index.php [L] Założenie: www.strona.pl/artykul.php?id=24 www.strona.pl/artykul-2.html RewriteRule ^artykul-([^-]+).html$artykul.php?id=
  19. 19. Przyjazne linki J!Rzeczywistość Adres artykułu: strona.pl/index.php?option=com_content&task=view&id=1&Itemid=26 RewriteRule ([^-]+)/([^-]+)/([^-]+)/([^-]+).html$ index.php?option=&task=&id=&Itemid= [L] RewriteRule (com_content)/(view)/([^-]+)/([^-]+).html$ index.php?option=&task=&id=&Itemid= [L] Wygląd po zmianie: strona.pl/com_content/view/1/26.html
  20. 20. Przekierowania domeny Z www i bez www Przekierowanie z WWW na adres bez WWW: RewriteCond %{HTTP_HOST} ^www.strona.com [NC] RewriteRule ^(.*)$ http://strona.com/ [R=301,L] Przekierowanie bez WWW na WWW: RewriteCond %{HTTP_HOST} ^strona.com [NC] RewriteRule ^(.*)$ http://www.strona.com/ [R=301,L]
  21. 21. Przekierowania domeny Stara strona na nową: RewriteCond %{HTTP_HOST} ^stary_adres.com [NC, OR] RewriteCond %{HTTP_HOST} ^www.stary_adres.com RewriteRule ^(.*)$ http://www.nowy.com/ [R=301,L] Sprawdzanie, czy przekierowanie nie prowadzi do katalogu bądź pliku: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.html [L]
  22. 22. Przekierowania ciąg dalszy Przekierowania starych adresów podstron na nowe: Redirect /katalog http://www.strona.pl/plik.php Redirect 301 /kontakt-do-firmy.html /kontakt
  23. 23. Subdomeny Przekierowanie subdomeny na odpowiedni katalog bez konieczności wprowadzania zmian w panelu administracyjnym domeny RewriteCond %{HTTP_HOST} sub.strona.pl RewriteCond %{REQUEST_URI} !sub/ RewriteRule (.*) sub/ [L] Wynik: www.strona.pl/sub W drugą stronę RewriteCond %{HTTP_HOST} www.strona.pl [NC] RewriteCond %{REQUEST_URI} sub/ RewriteRule (.*) http://www.sub.strona.pl [L] Wynik:sub.strona.pl
  24. 24. Subdomeny W przypadku wielu subdomen: RewriteCond %{HTTP_HOST} sub.strona.pl RewriteCond %{REQUEST_URI} !sub/ RewriteRule (.*) sub/ [L] RewriteCond %{HTTP_HOST} sub2.strona.pl RewriteCond %{REQUEST_URI} !sub2/ RewriteRule (.*) sub2/ [L]
  25. 25. Subdomeny Ostatecznie: RewriteCond %{HTTP_HOST} !^(www.)?strona.pl$[NC] RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule .* http://%1.strona.pl [L]
  26. 26. Subdomeny Wykorzystanie wyrażeń regularnych: RewriteCond %{HTTP_HOST} strona.pl [NC] RewriteCond %{HTTP_HOST} (.*).strona.pl [NC] RewriteRule .* /%2%{REQUEST_URI} I w drugą stronę: RewriteCond %{HTTP_HOST} strona.pl [NC] RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule .* http://%1.strona.pl [L]
  27. 27. Flagi modułu mod_rewrite  [R = kod] – pozwala na przekierowanie linku według podanej wartości  [QSA] – powoduje dodanie na końcu całego zapytania query string  [L] – ustanawia linijkę jako ostatnią, reguły występujące dalej nie będą wykonywane  [NC] – ignoruje wielkość liter wpisanego adresu  [T] – ustawienie typu MIME  [F] – zwraca błąd 403  [S = liczba] – pomija określoną liczbę reguł  [N] – rozpoczyna przetwarzanie od początku Więcej flag znajdziesz na: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html.
  28. 28. Czasy przechowywania w pamięci podręcznej <IfModule mod_expires.c> ExpiresActive on ExpiresDefault "access plus 1 month„ ExpiresByType text/css "access plus 1 year„ ExpiresByType text/html "access plus 0 seconds„ ExpiresByType application/javascript "access plus 0 seconds" ExpiresByType application/x-javascript "access plus 1 year" ExpiresByType text/javascript "access plus 1 year„ ExpiresByType application/json "access plus 0 seconds„ ExpiresByType application/xml "access plus 0 seconds" ExpiresByType text/xml "access plus 0 seconds„ ExpiresByType application/atom+xml "access plus 1 hour„ ExpiresByType image/jpeg "access plus 1 month„ ExpiresByType font/opentype "access plus 1 month"
  29. 29. Zmiana wersji PHP W przypadku braku możliwości zmiany w panelu hostingu W przypadku braku obsługi php.ini AddHandler application/x-httpd-php54 .php
  30. 30. Power .htaccess dla Joomla! Plik dla Joomla 3.6.2 http://morphic.pl/upload/htaccess.rar W przypadku pozostałych wersji proszę o kontakt na kontakt@morphic.pl
  31. 31. Dziękuję za uwagę

×