Samizdatová skripta

Rewrire mod


Pravidla se zapiují do httpd.conf (pokud máte přístup), nebo do .htaccess

# presmerovani

RewriteEngine on
RewriteRule   pozadovany-soubor\.html   /vysledny-soubor.html   [R]
------------------------------------------
# podstrčení (není tam to [R])

RewriteEngine on
RewriteRule zadana-stranka\.html podstrcena-stranka.html
------------------------------------------
# Jednoduchý regulérní výraz

RewriteEngine on
RewriteRule (.*) http://www.example.com [R]
Pravidlo, které všechno z aktuálního adresáře (ve kterém je .htaccess) přesměruje na hlavní stránku www.example.com
------------------------------------------
# konečně něco použitelného - např přesměrování článků

RewriteEngine on
^ clanek- (.*) skript.php?id= $1 ------------------------------------------
# Změna dynamických adres na statické

Následující použití ukazuje jednoduchý příklad přechodu na přepisované adresy. Původní adresy byly typu /index.php?page=neco - rádi bychom /neco.html skrytě přepsané na fungující skript. Pro zachování odkazů z jiných webů a vyhledávačů (ale se snahou o propagaci nové podoby adres) vytvoříme přesměrování na nové adresy.

RewriteEngine On
#RewriteBase /adresar
RewriteCond %{QUERY_STRING} ^page=([^&]+)$
RewriteRule ^index\.php$%1.html? [R=301,L]
RewriteRule ^([^/]+)\.html index.php?rw=1&page=$1[L,QSA]


Protože v RewriteRule nelze testovat parametry za otazníkem (query string), musíme použít pomínku RewriteCond s testováním této proměnné. Pokud má požadovaný tvar, bude kontrolovat následující pravidlo. V něm vytáhneme ozávorkovanou část z poslední použité podmínky díky %1. Za koncovku .html přidáme ještě onen otazník, aby se automaticky nepřidal query string. Další pravidlo je už klasické - skrytý přepis statické adresy na dynamickou. Přidáme však nějaký parametr (v našem případě rw=1), aby se přepisování necyklilo.
Pokud to máme v nějakém adresáři, odkomentujte druhý řádek s RewriteBase a napište tam správnou cestu toho adresáře. Pro kořenový adresář tedy použijte /.

upravit odstranit css

NAVRCHOLU.cz