Create a .htaccess file

Příklady použití .htaccess

Monetizujte váš web!

Zjištění absolutní cesty

php soubor

<?php echo

//absolutní cesta___________________________pokus.all4all.cz
$server0 = $_SERVER['SERVER_NAME'];
//absolutní cesta___________________________pokus.all4all.cz
$server = $_SERVER['HTTP_HOST'];
//absolutní cesta k souboru bez domény______/install/clean_install_1.0.php
$server1 = $_SERVER['REQUEST_URI'];
//absolutní cesta bez kořenové adresy_______/install/clean_install_1.0.php
$server2 = $_SERVER['PHP_SELF'];
//absolutní cesta bez kořenové adresy_______/install/clean_install_1.0.php
$server3 = $_SERVER['REQUEST_URI'];
//relativní cesta do root adresáře hostingu_/var/web/html
$server4 = $_SERVER['DOCUMENT_ROOT'];
//relativní cesta k souboru_________________/data/web/domains/all4all.cz/pokus/install/clean_install_1.0.php
$server5 = $_SERVER['SCRIPT_FILENAME'];
//název složky______________________________/install
$server6 = dirname($_SERVER['PHP_SELF']);
//relativní cesta do složky_________________/data/web/domains/all4all.cz/pokus/install
$server7 = dirname(__FILE__);
//relativní cesta do nadřazené složky_______/data/web/domains/all4all.cz/pokus
$server8 = dirname(dirname(__FILE__));
//nadřazená složka__________________________pokus
$server9 = basename(dirname(dirname(__FILE__)));
//nadřazená složka__________________________/
$server10 = dirname(dirname($_SERVER['PHP_SELF']));

?>

--------------------------------------------------------------------------------------------------------

Zaheslování pomocí .htaccess - vysvětlivky

.htaccess

AuthType
Určí typ HTTP autorizace, pro určení Basic Access Authentication, zadejte AuthType Basic
AuthName
Tato direktiva nastaví text popisující danou oblast/aplikaci (je to hodnota realm).
AuthUserFile
Tato direktiva je velmi důležitá, určí totiš cestu k souboru se seznamem uživatelů. Cestu musíme zadat absolutně.
AuthGroupFile
Slouží obdobně jako předešlá direktiva k určení cesty, tentokrát ale k souboru s uživateskými skupinami. Opět se musí jednat o absolutní cestu. Pokud uživatelské skupiny nepoužijeme, tuto direktivu přeskočíme.
Require
Tato direktiva určí, kteří uživatelé budou mít povolený přístup. K dispozici jsou 3 možnosti.
a. Require user a následují jména jednotlivých uživatelů oddělený mezerou. To umožní přístup uvedeným uživatelům.
b. Require group a následují jména jednotlivých skupin uživatelů oddělený mezerou. To umožní přístup uživatelům, uvedených v patřičných skupinách. Pokud tuto možnost nepoužijeme, není nutné vytvářet ani uživateské skupiny
c. Require valid-user To umožní přístup všem uživatelům uvedených v seznamu uživatelů

Důležité je správně zadat cestu k souborům htpasswd a htgroup. Musí se totiž nezbytně jednat o absolutní cestu vzhledem k souborovému systému serveru. Relativní cesty (počítající s tím, že jsou tyto soubory ve stejném adresáři) nebo URL adresa nebudou fungovat. Upozorňuji na to, protože toto je nejčastější chyba.

--------------------------------------------------------------------------------------------------------

Zaheslování celé složky pro jednoho uživatele

.htaccess

AuthUserFile /home/web/heslo/.htpasswd
AuthGroupFile /dev/null
AuthName "heslo"
AuthType Basic
require valid-user

.htpasswd (vygenerování velmi dobře zašifrovaného hesla)

admin:$apr1D$pLocG9$YXF1XP67zVcN21XMde.Fgz/

--------------------------------------------------------------------------------------------------------

Zaheslování stránky pomocí .htaccess
.htaccess

AuthUserFile /home/www/heslo/.htpasswd
AuthName "Restricted Area"
AuthType Basic
require valid-user

- Tento kód zašifruje celý web www.example.cz.
- Do souboru .htpasswd napište zašifrované jméno a heslo ve tvaru login:heslo.

--------------------------------------------------------------------------------------------------------

Zaheslování celé zložky pro skupinu uživatelů

.htaccess

AuthType Basic
AuthName "heslo"
AuthUserFile .htpasswd
AuthGroupFile .htgroup
Require group admin

.htpasswd

radek:$apr1$pDLocG96$eXYXF1P7zVcN21XMd.Fgz/
honza:x5m4XeTAs4LB5m4XeTAs4LB5m4XeTAw.Fgz/

tatka:$apr1$pDLocG96$eXYXF1P7zVcN21XMd.Fgz/
mamka:x5m4XeTAs4LB5m4XeTAs4LB5m4XeTAw.Fgz/

.htgroup

admin: "radek" "honza"
doma: "tatka" "mamka"

--------------------------------------------------------------------------------------------------------

Zaheslování konkrétního souboru

.htaccess

<Files heslo.php>  ##soubor zaheslován pro skupinu admin
AuthType Basic
AuthName "heslo.php"
AuthGroupFile /home/web/.htgroup
AuthUserFile /home/web/.htpasswd
Require group doma
</Files>

<Files phpinfo.php>  ##soubor zaheslován bez skupiny přímo na .htpasswd
AuthType Basic
AuthName "soubor.php"
AuthUserFile /home/web/.htpasswd
Require valid-user
</Files>

--------------------------------------------------------------------------------------------------------

Zamezení přístupu pro konkrétní soubor

.htaccess

<Files soubor.php>
Deny from All
</Files>

--------------------------------------------------------------------------------------------------------

Automatické zadání jména a hesla

pole adresa

http://jmeno:heslo@www.neco.cz/zabezpecena_stranka.php

--------------------------------------------------------------------------------------------------------

Nastavení jiné výchozí stránky

.htaccess

DirectoryIndex index.html index.php   ##první je výchozí a druhá je náhradní výchozí

--------------------------------------------------------------------------------------------------------

Dočasné přesměrování na jinou stránku

.htaccess

Redirect /pokus.html http://novaadresa.cz/pokus2.html

--------------------------------------------------------------------------------------------------------

Trvalé přesměrování na jinou stránku

.htaccess

Redirect 301 /index.php http://www.all4all.cz/www/portal/index.php

--------------------------------------------------------------------------------------------------------

Automatické přesměrování -  přesměrování všech starých adres na nové  -  co končí na htm, bude končit na html  -  podtržítko se nahrazuje mínuskem

.htaccess

RedirectMatch (.*)_(.*)\.htm$ $1-$2.html

RedirectMatch (.*)\.htm$ $1.html

--------------------------------------------------------------------------------------------------------

Přesměrování webu bez WWW na verzi s WWW

.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.cz [nc]
RewriteRule (.*) http://www.example.cz/$1 [R=301,L]

--------------------------------------------------------------------------------------------------------

Přesměrování webu s WWW na verzi bez WWW
.htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.vase-domena\.cz [nc]
RewriteRule (.*) http://vase-domena.cz/$1 [R=301,L]

--------------------------------------------------------------------------------------------------------

Přesměrování z 1.php na 2.php
.htaccess

RewriteEngine On
RewriteRule 1\.php /2.html [R=301]

--------------------------------------------------------------------------------------------------------

Vypnutí register_globals (ovlivnění php.ini)

.htaccess

php_flag register_globals off

--------------------------------------------------------------------------------------------------------

Vypnutí magic_quotes (ovlivnění php.ini)

.htaccess

php_flag magic_quotes_gpc off

--------------------------------------------------------------------------------------------------------

Chybová stránka

.htaccess

ErrorDocument 404 http://www.all4all.cz/error/404.html
nebo
ErrorDocument 404 404.html

ErrorDocument 403 "http://all4all.cz/chyba-403.html"
ErrorDocument 404 "http://all4all.cz/chyba-404.html"

Co znamenají čísla kterých chybových stránkek

--------------------------------------------------------------------------------------------------------

Nastavení času a velikosti uploadu

.htaccess

# adjust memory limit
php_value memory_limit 64M
php_value max_execution_time 18000

--------------------------------------------------------------------------------------------------------

Blokování přístupu podle IP adres

.htaccess

deny from 123.123.123.123
- Číslo je IP adresa, kterou chcete zablokovat přístup na Vaše stránky.
deny from 111.123
- Zablokujete přístup ze všech adres, které začínají 111.123
deny from all
- Zablokujete přístup celého adresáře.
allow from 123.123.123.123
- Povolíte této IP adrese vstup na Vaše stránky.

--------------------------------------------------------------------------------------------------------

Ochrana proti SPAMbotům

.htaccess

RewriteCond %{HTTP_USER_AGENT} Wget [OR]
RewriteCond %{HTTP_USER_AGENT} CherryPickerSE [OR]
RewriteCond %{HTTP_USER_AGENT} CherryPickerElite [OR]
RewriteCond %{HTTP_USER_AGENT} EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ExtractorPro
RewriteRule ^.*$ http://www.spampoison.com/ [L]

- Tento kód odhalí většinu SPAM botů, které přesměruje pryč z Vašeho webu.
- Tento kód přesměruje SPAM bota na adresu: http://www.spampoison.com/.

--------------------------------------------------------------------------------------------------------

Přepis z /něco.php na /něco
.htaccess

RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule .* - [L]
RewriteRule ^([\w-]+)$ /$1.php [L,QSA]

- Tento kód pomocí .htaccess upravuje všechny adresy.
- Všechny adresy budou nyní zobrazovány na webu bez přípony .php
(na části Vašeho webu odkazujte bez .php)

--------------------------------------------------------------------------------------------------------

Přepíše něco-někde.php na /něco/někde
.htaccess

# Přepíše něco-někde.php na /něco/někde
RewriteRule ^něco/někde$ /něco-někde.php

--------------------------------------------------------------------------------------------------------

Přepis z /index.php?stranka=novinky na /novinky.html

.htaccess

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_URI} ^(.*).html
RewriteRule ^(.*).html index.php?stranka=$1 [nc,L,QSA]

--------------------------------------------------------------------------------------------------------

Povolení výpisu adresáře
.htaccess

Options +Indexes
- Uživatel uvidí soubory vložené na Vašem webu.

--------------------------------------------------------------------------------------------------------

Zakázání výpisu adresáře
.htaccess

Options -Indexes
- Uživatel se při snaze dostat se do některého adresáře bude přesměrován na chybovou stránku 403.

--------------------------------------------------------------------------------------------------------

Zapnutí Rewrite Modu
.htaccess

RewriteEngine On
- RewriteEngine On se zadává do .htaccess jen jednou!

--------------------------------------------------------------------------------------------------------

Povolení zobrazení obsahu adresáře, pokud chybí výchozí soubor

.htaccess

Options Indexes

--------------------------------------------------------------------------------------------------------

Chybné odkazy z různých diskuzí

.htaccess

RedirectMatch (.*)\.html.$ $1.html

RedirectMatch (.*)\.html,$ $1.html

--------------------------------------------------------------------------------------------------------

Cacheování

.htaccess

ExpiresActive On

vychozí expirace 5 minut

ExpiresDefault A300

expirace podle typu souboru:

expiruje počet sekund poté, kdy byl accessnut (A)

ExpiresByType application/x-javascript A2600000

ExpiresByType text/cssA12000000

ExpiresByType image/gifA30000000

ExpiresByType image/jpeg A30000000

ExpiresByType image/png A30000000

--------------------------------------------------------------------------------------------------------

Komprese

.htaccess

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/x-javascript

AddOutputFilterByType DEFLATE text/html

BrowserMatch ^Mozilla/4\.0[678] no-gzip

BrowserMatch \bMSIE !no-gzip

 

# Header append VaryUser-Agent

# DeflateCompressionLevel 9

# DeflateFilterNote Input instream

# DeflateFilterNote Output outstream

# DeflateFilterNote Ratio ratio