Opis: |
htaccess Standard SEF Przyk³adowy plik .htaccess z w³±czonym mod_rewrite oraz z Translacj± URL na Tak ( w³±czone przyjazne linki ). W pliku tym doda³em ro¿ne przyk³ady wykorzystania dyrektyw dostêpnych dla serwera Apache. Zale¿nie od wersji Apache oraz systemu na serwerze, wpisy te mog± wygl±daæ ro¿nie, o czym wspominam w opisach do dyrektyw. Poni¿ej kod, w którym opisy, my¶lê ¿e w jasny sposób wskazuj± na to, co mo¿emy pozyskaæ poprzez wykorzystanie konkretnej dyrektywy. UWAGA!: Proszê nie kopiowaæ bezpo¶rednio kodu do innego edytora, poniewa¿ zawiera on znaczniki <br />, które s± niedopuszczalne w pliku .htaccess. Tak¿e wszelkie prze³amania linii nale¿y poprawiæ. Ostatnio na Forum Jokris.info u¿ytkownicy kopiowali kod, który poprzez mechanizmy formatowania kodu forum by³ prze³amany w jednym miejscu, co wywo³ywa³o, po wrzuceniu na serwer b³±d 500. Czyli np: # @version $Id: .htaccess 2008-02-25 16:07:11Z $ ...oznacza jedn± liniê, za komentowan±. natomiast je¶li pojawi siê w kodzie co¶ takiego: # @version $Id: .htaccess 2008-02-25 16:07:11Z $ ...oznacza to prze³amanie linii. Nale¿y to poprawiæ!. Poni¿ej kod. Polecam pobranie gotowego pliku, w którym postara³em siê, aby nie by³o ¿adnego b³êdu :), lub kopiowanie i wklejanie np. do Notatnika. ## # @version $Id: .htaccess 2008-02-25 16:07:11Z $ # @package Joomla # @copyright Copyright (C) 2005 Open Source Matters. All rights reserved. # @license http://www.gnu.org/copyleft/gpl.html GNU/GPL # Joomla! is Free Software # Autor przykladowego pliku .htaccess Krzysiek Stachyra (Jokris) # www.jokris.info # Plik moze nie pracowac na serwerach z safe-mode na On!!! # Znak # przed dyrektywami oznacza, ze sa one nie aktywne # Wpisy w tym pliku sa ustawione jako domyslne dla wlaczonych # przyjaznych linkow bez uzycia dodatkowych komponentow SEF lub SEO # Nie zapomnij ustawic w Konfiguracji Globalnej - Translakcja URL na Tak ## ## Jesli ponizsza opcja powoduje bledy po odkomentowaniu, nie uzywaj jej. #Options FollowSymLinks # # zmieniasz wersje PHP na serwerze, o ile to mozliwe!!!. Czytaj przyklady na samym dole # # wlaczasz mod_rewrite (On - wlaczone, Of wylaczone) RewriteEngine On ########## Przykladowe przekierowanie na www #### Zaleta?. Strona zawsze z www #### Zamien twojadomena.pl na wlasciwa nazwe #### Usun po zmianie znaki # sluzace jako dezaktywacja polecenia #RewriteCond %{HTTP_HOST} ^twojadomena.pl #RewriteRule ^(.*)$ http://www.twojadomena.pl/$1 [R=permanent,L] ########## koniec przekierowania na www ########## Przykladowe przekierowanie na www poprzez protokol SLL #### Strona, o ile serwer na to pozwala #### zawsze bedzie otwarta w trybie szyfrowania SSL #RewriteCond %{HTTP_HOST} ^twojadomena.pl$ #RewriteCond %{HTTP_HOST} ^www.twojadomena.pl$ #RewriteRule ^(.*) https://www.twojadomena.pl/$1 [QSA,L,R=301] ########## koniec przekierowania na www poprzez protokol SLL ########## antyzlodziej #### Zaleta?. Nikt Ci nie podbierze obrazkow z serwera #### Stworz plik hotlink.gif, najlepiej o srednich rozmiarach #### Umiesc go w sciezce http://www.twojadomena.pl/hotlink.gif #### Zamien twojadomena.pl na wlasciwa nazwe #### Usun po zmianie znaki # sluzace jako dezaktywacja polecenia #RewriteCond %{HTTP_REFERER} !^$ #RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?twojadomena.pl [NC] #RewriteRule \.(jpg|jpeg|png)$ http://www.twojadomena.pl/hotlink.gif [NC,R,L] ########## antyzlodziej koniec ########## Przykladowe przekierowanie bledu 403 404 #### zamisast stadnardowego przekierowania #### bez uzycia sciezki absolutnej. #### Utworz katalog o nazwie /blad/. #### Moze to byc plik html, php, cgi lub obrazek #### Zamien twojadomena.pl na wlasciwa nazwe #### Usun po zmianie znaki # sluzace jako dezaktywacja polecenia #ErrorDocument 403 http://www.twojadomena.pl/blad/jakisplik.php #ErrorDocument 404 http://www.twojadomena.pl/blad/jakisplik.php ########## koniec przekierowania bledu 403 404 ########## Przykladowe przekierowanie wszystkich bledow #### zamisast stadnardowego przekierowania #### z uzyciem sciezki absolutnej. #### Plik .shtml ma strukture zwyklego pliku html. #### Nalezy stworzyc plik html a nastepnie #### zmienic jego rozszerzenie na .shtml. #### Utworz katalog o nazwie /blad/. #### /home/users/NAZWA_KONTA/ zamien na swoja sciezke absolutna #ErrorDocument 400 /home/users/NAZWA_KONTA/blad/400.shtml #ErrorDocument 401 /home/users/NAZWA_KONTA/blad/401.shtml #ErrorDocument 403 /home/users/NAZWA_KONTA/blad/403.shtml #ErrorDocument 404 /home/users/NAZWA_KONTA/blad/404.shtml #ErrorDocument 405 /home/users/NAZWA_KONTA/blad/405.shtml #ErrorDocument 406 /home/users/NAZWA_KONTA/blad/406.shtml #ErrorDocument 408 /home/users/NAZWA_KONTA/blad/408.shtml #ErrorDocument 410 /home/users/NAZWA_KONTA/blad/410.shtml #ErrorDocument 411 /home/users/NAZWA_KONTA/blad/411.shtml #ErrorDocument 414 /home/users/NAZWA_KONTA/blad/414.shtml #ErrorDocument 500 /home/users/NAZWA_KONTA/blad/500.shtml #ErrorDocument 503 /home/users/NAZWA_KONTA/blad/503.shtml ########## Koniec przykladowego przekierowania wszystkich bledow ########## Parsowanie ampersend - UWAGA - nie na wszystkich serwerach dziala! #### Zaleta?. Strona podczas walidowania zgodnosci z WC3 #### nie bedzie zawierac bledow z nieprawidlowym #### wyswietlaniem znakow ampersend, #### a szczegolnie we wszystkich odsylaczach #php_value arg_separator.output "&" #php_value arg_separator.input "&" ####lub #php_value arg_separator.output & #php_value arg_separator.input &; ########## Koniec parsowania ampersend # Odkomentuj ponizsza linie jesli twoj serwer URL # nie znajduje sie w polozeniu relatywnym do sciezki z fizycznym dyskiem. # Aktualizuj swoja sciezke do Joomla/Mambo np. (RewriteBase /joomla) # RewriteBase / ########## Sekcja ponizej ustawiona jest w tym pliku jako domyslna ########## Tutaj zaczyna sie wbudowana w core Joomla Sekcja SEF ############# Use this section if using ONLY Joomla! core SEF ## ALL (RewriteCond) lines in this section are only required if you actually ## have directories named 'content' or 'component' on your server ## If you do not have directories with these names, comment them out. # RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##ocjonalnie - zgodnie z dokumentacja## RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] RewriteRule ^(content/|component/) index.php # ########## End - Joomla! core SEF Section ########## Tutaj zaczyna sie Sekcja z dodatkami 3rd Party SEF ############# Nalezy uzyc tej sekcji tylko dla dodatkow 3rd party ## z rozszerzeniami SEF (Nie wywoadzacych sie z kodu zrodlowego Joomla!) ## - n.p. JoomSef, OpenSEF, 404_SEF, 404SEFx, SEF Advance, ## itd # #RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##ocjonalnie - zgodnie z dokumentacja## #RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC] #RewriteCond %{REQUEST_FILENAME} !-f #RewriteCond %{REQUEST_FILENAME} !-d #RewriteRule (.*) index.php # ########## Koniec - Sekcja z dodatkami 3rd Party SEF ########## Tutaj zaczyna sie przetwarzanie regul blokujacych ataki typu exploits # # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] # Block out any script that includes a < script > tag in URL RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] # ########## Koniec - Przetwarzanie regul blokujacych ataki typu exploits ########## Ponizej dyrektywy blokujace wrzucanie plikow na serwer ### z poziomu np. nieautoryzowanego order allow,deny allow from all ########## spamerzy - hackerzy blokowanie dostepu do strony ######## Wyjasnienie przykladow: ###### Jezeli chcesz zablokowac adres IP 63.44.56.20 nalezy wpisac: #Deny from 63.44.56.20 ###### Jezeli chcesz zablokowac wszystkie adresy IP zaczynajace sie od ###### 192.168.10.x, wpisz: #Deny from 192.168.10 ###### Jezeli chcesz zablokowac wszystkie adresy IP z konkretnej domeny ###### wpisz nazwe tej domeny wg ponizszego wzoru: #Deny from .jakasdomena.pl ######## Koniec przykladow ########## blokowanie IP - wpisy aktualne deny from 213.219.122 deny from 195.150.77.248 deny from 212.68.215.87 deny from 85.17.1.117 deny from 80.237.211.8 deny from 72.37.212.106 deny from 195.150.77.248 deny from 212.68.215.87 deny from 87.101.65.166 deny from 213.238.83.202 deny from 217.76.116.186 deny from 83.21.16.227 deny from 83.15.0 deny from 79.163.225.105 deny from 85.112.193.38 deny from 85.112.193 deny from 83.15.0.51 deny from 77.70 deny from 77.70.106.4 deny from 77.70.106.72 deny from 89.79.112.149 deny from 89.77.2.35 deny from 89.77.2.35 ########## blokowanie domen - wpisy aktualne te domeny dostarczaja tez spam deny from .darkhack.us deny from .fc03.deviantart.com deny from .deviantart.com deny from .west-sounds.com deny from .lowmp3.info deny from .justmusicmp3.com deny from .isound.be deny from .kwatera.com deny from .galomat.pl deny from .peggysage.pl deny from .rakszawskie.p2a.pl deny from .wba.wbhosting.co.ukital-charms.com deny from .ital-charms.com deny from .wbhosting.co.uk deny from .zone-h.orgwba.wbhosting.co.uk deny from .zone-h.com deny from .fileupyours.com deny from .parit.org deny from .ankietaonline.pl deny from .ankieta-online.pl deny from .leaseweb.com deny from .pachecotecnologia.net deny from .pachecotecnologia.com deny from .freeimagehosting.netexamples.oreilly.com deny from .examples.oreilly.com deny from .oreilly.com deny from .spieleck.de deny from .onkare.com deny from .superlab.com deny from .cyber-warrior.org deny from .cyber-security.orgmegalan.bg deny from .megalan.bg deny from .hewew245.sitemynet.com deny from .mynet.com deny from .sitemynet.com deny from .hewew245.sitemynet.com deny from .dosya.ayyildiz.org deny from .hackbulten.com deny from .forumdapaylas.com deny from .ashiyane.org ########## Ponizej pozostale przyklady dyrektyw dla Apache ### przeczytaj dokladnie co chcesz zrobic ### a potem usun znak # sprzed dyrektywy ### Wylaczasz/wlaczasz pokazywanie bledow #### off wylaczasz, on wlaczasz #php_flag display_errors off ########## Wylaczasz/wlaczasz rejestrowanie zmiennych globalnych #### off wylaczasz, on wlaczasz #php_flag register_globals off #lub, zaleznie od serwera.. #### 0 wylaczasz, 1 wlaczasz #SetEnv REGISTER_GLOBALS 0 ########## Koniec wlaczania/wylaczania rejestrowania zmiennych globalnych ########## Wylaczasz/wlaczasz interpretacje krotkich znacznikow #### off wylaczasz, on wlaczasz #php_flag short_open_tag off ########## Zwiekszanie limitu pamieci ( wartosc mksymalna ) #### wpisujesz wartosc w MB #php_value memory_limit 32M ########## Zmiana wersji PHP na serwerze ##### Zmieniasz wersje PHP serwera na 4 #SetEnv PHP_VER 4 ##### Zmieniasz wersje PHP serwera na 5 #SetEnv PHP_VER 5 ##### lub w inny sposob ( zaleznie od serwera ) ##### Zmieniasz wersje PHP serwera na 4 # :Location *.(php|phtml) #Use php4 ##### Zmieniasz wersje PHP serwera na 5 # :Location *.(php|phtml) #Use php5 ########## Koniec zmiany wersji PHP na serwerze ########## Wylaczasz/wlaczasz magiczne sekwencje sterujace #### 0 wylaczasz, 1 wlaczasz #SetEnv MAGIC_QUOTES 0 ########## Wylaczasz/wlaczasz modul ZEND OPTYMIZER #### 0 wylaczasz, 1 wlaczasz #SetEnv ZEND_OPTIMIZER 0 ########## Wylaczasz/wlaczasz kompresje zlib, czasami powoduje klopoty z przegladarkami #### 0 wylaczasz, 1 wlaczasz #php_value zlib.output_compression 0 ########## Koniec przykladow dyrektyw dla Apache ##### Jesli ktoras dyrektywa nie dziala, ##### skontaktuj sie z administratorem serwera, ##### aby uzyskac wiecej informacji, ##### na temat czy dyrektywa moze byc uzyta, ##### i w jaki sposob ########## 2008 WWW.JOKRIS.INFO Autor przyk³adowego pliku .htaccess Krzysiek Stachyra (Jokris) Masz problemy z tym plikiem?. To zapraszam Ciê na [ FORUM ] i zawsze na moj± stronê [ WWW.JOKRIS.INFO ]. |