Login lub e-mail Hasło   

Plik .htaccess

1. Do czego służą pliki .htaccess ? Plik .htaccess pozwala na pewne zmiany w konfiguracji serwera. Zmiany te są widoczne tylko w podkatalogach i katalogu, w którym ten p...
Wyświetlenia: 9.493 Zamieszczono 23/08/2006
1. Do czego służą pliki .htaccess ?

Plik .htaccess pozwala na pewne zmiany w konfiguracji serwera. Zmiany te są widoczne tylko w podkatalogach i katalogu, w którym ten plik się znajduje.
Jeśli wstawimy do jakiegoś podkatalogu inny plik .htaccess następuje zmiana parametrów w tym katalogu i znów w podkatalogach tego podkatalogu :)
Pamiętaj, że każdą komendę konfiguracji definujemu po enterze (chr(13));
Ogólnie mówiąc dzięki plikom .htaccess możemy ustawić parametry dla kilku tysiecy stron jednocześnie zmiast ustawiać je pojedyńczo.



2. Przykłady


Kod:

ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php
ErrorDocument 503 /503.php


Dzieki tym linijkom mozemy określić własne strony z informacją o danym błędzie.
Oto mój przykładowy plik strony informującej o błędzie:

Kod:

<?php

// logi
Function logs($msg)
{
    global
$HTTP_USER_AGENT, $_SERVER;
    
$url = sprintf("%s%s%s","http://",$_SERVER['HTTP_HOST'],$_SERVER['REQUEST_URI']);
    
$plik='http';
    if(
$_SERVER['HTTPS']=='on')
       {
          
$plik.='s';
        }
    
$plik.='://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
    if(
$_SERVER['QUERY_STRING']>' ')
    {
        
$plik.='?'.$_SERVER['QUERY_STRING'];
    }
    if (
$_SERVER["HTTP_X_FORWARDED_FOR"])
    {
        if (
$_SERVER["HTTP_CLIENT_IP"])
        {
            
$mz_user['proxy']=$_SERVER["HTTP_CLIENT_IP"];
        }else
        {
            
$mz_user['proxy']=$_SERVER["REMOTE_ADDR"];
        }
        
$mz_user['ip']=$_SERVER["HTTP_X_FORWARDED_FOR"];
    }else
    {
        if (
$_SERVER["HTTP_CLIENT_IP"])
        {
            
$mz_user['ip']=$_SERVER["HTTP_CLIENT_IP"];
        }else
        {
            
$mz_user['ip']=$_SERVER["REMOTE_ADDR"];
        }
    }
    
$h=@fopen('logs.txt','a'); // pamietaj aby ustawic chmod na 622
    
@fwrite($h,date('H:i:s d-m-Y').'     ip: '.$mz_user['ip'].' proxy: '.$mz_user['proxy'].'  plik: '.$plik.'  url: '.$url.' '.$msg.' ');
    @
fclose($h);
    return
$msg;
}

// log
logs('404 - Plik nie istnieje');
?>
<html>
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"/>
        <link rel="stylesheet" href="http://www.sulucilus.fol.pl/gfx/styl.css" type="text/css"/>
        <link rel="shortcut icon" href="http://www.sulucilus.fol.pl/gfx/ikona.ico">
        <title>Sulucilus home page - Bł&#177;d(ERROR) 404</title>
    </head>
    <body background="http://www.sulucilus.fol.pl/gfx/tlo.gif" leftmargin="0" topmargin="0">
        <center><img src="http://www.sulucilus.fol.pl/gfx/404.jpg" width="561" height="439" border="0" alt="PODANA STRONA NIE ISTNIEJE - PAGE NOT EXIST"/><br/>
        <p><a href="http://www.sulucilus.fol.pl"><img src="http://www.sulucilus.fol.pl/gfx/404_1.jpg" width="298" height="37" border="0" alt="Kliknij aby dostać się na stronę główn&#177; - Go to main page" title="Kliknij aby dostać się na stronę główn&#177; - Go to main page"/></a></p></center>
        <script language="JavaScript" type="text/javascript">
            document.write("<img src=\\"http://stat.4u.pl/cgi-bin/s.cgi?i=sulucilus&r="+top.document.referrer+"\\" width=1 height=1>")
        </script>
        <noscript>
            <img src="http://stat.4u.pl/cgi-bin/s.cgi?i=sulucilus&r=ns" width="1">
        </noscript>
    </body>
</html>




Kod:

deny from all


blokowanie dostępu z zew. nikt nie wylistuje tego folderu i nie podejży w nim plików(oprócz użytkownika oraz twoich skryptów)


Kod:

deny from 000.000.000.000


Blokowanie danego zakresu ip


Kod:

deny from all
allow from 000.000.000.000


Dostęp tylko z danego zakresu ip


Kod:

Redirect /scizka http://www.innastrona.pl/stara


przekierowanie przy próbie dostępu do danego pliku(oczywiscie z poziomu przegladarki), jesli ktos bedzie chcial odczytac np.
http://www.strona.pl/sciezka/plik.php to automatycznie przekieruje go do http://www.innastrona.pl/stara/plik.php


Kod:

AuthName \"Section Name\"
AuthType Basic
AuthUserFile /scizka/do/.htpasswd
Require valid-user[/code]
Ustawienie hasła dostępu dla danego folderu. Section Name zastępujemy naszym komunikatem, a /scizka/do/.htpasswd sciezka do pliku .htpasswd, w ktorym przechowywane są hasła.
Hasła przechowuje się w formacie:
<br><b><small>Kod:</small></b><p class="code"><code><font color="#000000">
login:haslo


Jeśli chcesz możesz dodać kilka userów (poprostu dodajesz kolejne linijki z "login:haslo".
Pamiętaj, że hasło musi być zakodowane.
Do tego celu użyj funkcji crypt z php http://pl.php.net/manual/pl/function.crypt.php.

Kod:

<font color="#0000BB"><?php </font><font color="#007700">echo </font><font color="#0000BB">crypt</font><font color="#007700">(</font><font color="#DD0000">'haslo'</font><font color="#007700">,</font><font color="#0000BB">CRYPT_STD_DES</font><font color="#007700">); </font><font color="#0000BB">?></font>




Kod:

AuthName "Section Name" Access allow all users marek jacek


Dostęp tylko dla użytkowników o loginach marek i jacek


Kod:

AuthName "Section Name" Access allow all groups lolki


Dostęp tylko dla użytkowników należących do grupy lolki


Kod:

AuthName "Section Name" Access allow 192.45.111.222


Dostęp tylko dla użytkowników mających ip: 192.45.111.222


Kod:

AuthName "Section Name" Access allow 195.205


Dostęp dla dowolnego hosta, którego ip zaczyna się od 194.45


Kod:

HeaderName /HEADER.HTML ReadmeName /README.HTML


Dzięki tym linijkom gdy nie będzie w danym folderze pliku index apache wylistuje katalogi z tym, że zaincluduje pliczki HEADER.HTML oraz README.HTML,
Czemu takie nazwy, te pliczki są ukrywane przy listowaniu, Czemu / przed nimi, gdy będzie bez / to bedzie includowal te pliczki tylko dla tego katalogu w którym jest pliczek .htaccess
To jest szczególnie przydatne gdy chcemy zrobić stronę opartą o listowanie folderów oraz chcemy wiedziec ile na niej przebywa osób (można smiało do pliku README lub HEADER wsadzić jakieś statystyki)
Uwaga nie radze zmieniać rozmiarów i typów czcionek bo całe listowanie może się rozwalić ;/


Kod:

AddType application/x-httpd-php .jpg


Określa typ dla danego rozszerzenia, w przykładzie wyżej, ustawione jest, iż w plikach .jpg zostanie wykonywany kod php


Kod:

AddType text/html .shtml AddHandler server-parsed .shtml Options Indexes FollowSymLinks Includes


Czasem SSI jest domyślnie wyłączone, ten wpis to zmieni.


Kod:

DirectoryIndex plik.html abc.def


Chciałbyś zmienić nazwę domyślnego pliku(np. index.php, index.html), który jest wyświetlany ? Nic trudnego wystarczy ten wpis. W nim decydujemy jaki plik ma być załadowany gdy nie jest podany konkretny plik. Pamiętaj, że kolejność ma znaczenie. Ponieważ jak nie będzie istniał jeden plik to serwer sprawdzi czy kolejny na liście istnieje, jeśli tak to go zaladuje.


Kod:

:Location /*.muzyka SetMime audio/mpeg


Ustawienie wartości mime (jest to rozszerzenie, które pobiera przeglądarka, następnie decyduje jaki program je obsługuje i uruchamia go) dla danego rozszerzenia plików w danym katalogu (można określić dla konkretnego pliku)


Kod:

<Files .htaccess> order allow,deny deny from all </Files>


Parametry dla danego pliku (jeśli wstawimy * to plików). W tym przypadku ustawiamy brak dostępu dla osób, które chciałyby podejrzeć nasze pliczki .htaccess. Jest to bardzo ważne ponieważ jak bronimy dostępu do jakiegoś pliku lub katalogu hasła mogą być przechowywane w takich pliczkach, a co za tym idzie podglądane przez przeglądarke (przy odpowiednich ustawieniach serwera), dlatego warto to zmienić.


Kod:

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\\.)?twoja-strona.pl/.*$ [NC] RewriteRule \\.(gif|jpg)$ - [F]


Czasem zdarza się, że statystyki na serwerze oraz na zew serwerze zupełnie się różnią. Warto by sprawdzić czy przypadkiem do naszych obrazków nie ma hotlinkowania, które sprawia, że trafik jest większy a statystyki kłamią. Te pare linijek wyżej rozwiążą nasz problem. Można też zamiast bronić użycia hotlinkowania poprostu przenieść użytkownika (przeglądarke) do innego obrazka.

Kod:

RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\\.)?twoja-strona.pl/.*$ [NC] RewriteRule \\.(gif|jpg)$ files/user46/hotlink.gif [R,L]




Kod:

IndexIgnore *.gif *.jpg


Czasem byśmy chcieli aby apache nie wylistował wszystkich plików. Ta linia odznaczy nam te, których nie chcemy. Przykład jest na plikach o rozszerzeniach jpg i gif



3. Linki




4. Autor

Autorem tekstu jest Sulucilus. Jeśli chcesz możesz zamieścić ten tekst na swojej stronie ale musisz podać kto jest jego faktycznym autorem oraz kontakt z nim. W tym przypadku:

Autor: Sulucilus
WWW: http://suli.goneo.net

Podobne artykuły


8
komentarze: 79 | wyświetlenia: 1080
111
komentarze: 32 | wyświetlenia: 60582
54
komentarze: 68 | wyświetlenia: 31240
54
komentarze: 56 | wyświetlenia: 32525
50
komentarze: 27 | wyświetlenia: 63433
49
komentarze: 18 | wyświetlenia: 64907
39
komentarze: 30 | wyświetlenia: 28760
39
komentarze: 50 | wyświetlenia: 23214
37
komentarze: 9 | wyświetlenia: 28461
36
komentarze: 37 | wyświetlenia: 23359
34
komentarze: 21 | wyświetlenia: 26283
32
komentarze: 76 | wyświetlenia: 12445
 
Autor
Dodał do zasobów: Rafal Kinde
Artykuł

Powiązane tematy





:Location, to z tego co wiem, rozszerzenie IdeaWebServer (czyli serwera home.pl). Poza tym mnóstwo literówek. Imo za dużo.

  toszcze  (www),  02/09/2006

Tekst dość chaotyczny, za mało przykładów (zamiast nich "encyklopedyczne" informacje).
Tym niemniej jednak znajdą się pewnie osoby, którym ten tekst pomoże. ;)

Thanks for this Coding. Have a good day. For ED issues try Kamagra ( http://www.mylocalpharma.com/k(...)ra.aspx ).



Dodaj swoją opinię
W trosce o jakość komentarzy wymagamy od użytkowników, aby zalogowali się przed dodaniem komentarza. Jeżeli nie posiadasz jeszcze swojego konta, zarejestruj się. To tylko chwila, a uzyskasz dostęp do dodatkowych możliwości!
 

© 2005-2018 grupa EIOBA. Wrocław, Polska