Hlog
Dnes je: pátek 29.březen 2024   Svátek má: Taťána 

Rewrite pro Microsoft IIS


Nedávno jsem řešil možnost rewritování URL na microsoftím IIS. Microsoft sám žádný modul pro rewritování URL nenabízí a tak jsem se musel poohlédnout po produktech třetích stran.

Z těch jsem nakonec vybral do užšího výběru následující:

http://www.isapirewrite.com nabízí rewritovaci modul pro IIS za 69$ i omezenou FREE verzi zdarma
http://www.qwerksoft.com/products/iisrewrite/ za $99.00 v akční slevě
http://cheeso.members.winisp.net/IIRF.aspx který doporučuje i Microsoft na svých stránkách k IIS.

Nakonec jsem vybral Ionic IsapiRewrite (třetí v pořadí), který má na svědomí Ionic Shade alias Cheeso, instalačka včetně zdrojových kódů má 0.35 MB.

Syntaxe je obdobná jako u apachovského mod_rewrite modulu, některé přepínače jsou také stejné.

Pravidla lze navěsit na následující události:

IterationLimit
MaxMatchCount
RewriteRule
RewriteCond
RewriteLog
RewriteLogLevel


přepínače:

R = Redirect
NF = Not found
L = Last test if match
F = Forbidden
I = Do case-insensitive matching
U = Store original url in server Variable HTTP_X_REWRITE_URL


Nejčastěji jsem používal L (poslední pravidlo) a U, který vrací původní adresu v proměnné HTTP_X_REWRITE_URL - u Apache používám REQUEST_URI, ale IIS nic nevracel.

Na rozdíl od apachovského mod_rewrite používaného na sdílených hostinzích se pravidla nezapisují pro každou doménu zvlášť do souboru .htaccess, ale společně do IsapiRewrite4.ini

Problém jsem měl u syntaxe RewriteCond %{REMOTE_ADDR} kdy server v REMOTE_ADDR nevracel to co bych očekával (adresu dané domény). Stejně tak jsem v proměnné SERVER_NAME nedostal kýžený výsledek, ale zde je možné, že server nebyl zcela správně nastaven.

Rozdíly v syntaxi samotných pravidel nejsou téměř žádné, používá se PERL kompatibilních regulárních výrazů.
Chvíli jsem se zapotil, než jsem přišel na to, že adresy v pravidlech musím používat absolutní k webrootu. Ale i tohle může byt příčina špatně nastaveného serveru.

Př.:
RewriteRule ^/web_adr/en/bulletin/(.*)/([0-9]{1,15})\.html$ /web_adr/index.php?lang=en&p=bulletin&idp=$2 [L]


Pokud nahrajete do IsapiRewrite4.ini nové pravidla, není potřeba restartovat server, pravidla se načtou automaticky, pokud je v pravidlech chyba, zapíše se do logu a automaticky se nahrají původní funkční pravidla. Také si můžete zvolit úroveň reportování. Přijatelný kompromis je 3, 5 zapisuje do logu úplně vše.

Robert Hlobílek   20.09.2006 19:42:30   přečteno: 7427x   komentářů: 0    << zpět

Vyhledávání

v
English version - English version

Nastavte si
Kolik zobrazovat článků na stránku


Anketa

Pohlednice
Pohlednice

Sekce

Citáty
Ten kdo získá dobrého zetě, najde syna. Kdo zlého, ztratí dceru

Démokritos z Abdér


Pobavte se

Alternativy

Taky moje
H-Démon
Fotohlog
2705.net - zábavní portálek
Kawasaki ER5
Games
Katalog www stránek


Info
OS:
Prohlížeč: Jiný, nezjištěno
Nadstavba:

IP: 3.89.200.155
Flash:
Java:
Real Player:
Quick Time:
Acrobat Reader:


Na čem běží
Apache server
Linux
MySQL DB
PHP powered
XHTML valid
Opera
Google
Firefox


Archiv

<--
<--
2024
březen
-->
-->
PoÚtStČtSoNe
    123
45678910
11121314151617
18192021222324
25262728293031


počitadlo w-software.com

© 2003 - 2024 Robert Hlobílek - všechna práva vyhrazena  |  w-software.com
Dřevostavba svépomocí |  Guitar Accesories |  BMW F650 GS
 |  LED bulbs
Digitální fotoaparát |  Geolokace, IP location |  Náramkové hodinky |  LED žárovky |  Minipočítače.cz |  RC modely
Cheap Android |  Cheap Watch |  Fotogalerie |  Online hry |  Burza domén |  Smartphone 1