Szerver Fórum

Szerver Fórum (https://szerver.org/index.php)
-   Microsoft IIS (https://szerver.org/forumdisplay.php?f=22)
-   -   .htaccess ill. URL rewrite IIS-en (https://szerver.org/showthread.php?t=16)

Kefe 2009-03-07 10:39

.htaccess ill. URL rewrite IIS-en
 
Néhány SEO-barát URL képző, mint pl. az Artio JoomSEF, vagy amit én inkább preferálok a Kanga JoomSEF modul megköveteli a .htaccess használatát (Joomla 1.0.x-nél).

Ezzel nincs is semmi baj - Apache esetén. De IIS-en nincs .htaccess...

A megoldás egy külső ISAPI program használata.
A két legelterjedtebb megoldás:
- ISAPI_Rewrite (http://www.isapirewrite.com)
- IIS Mod-Rewrite (http://www.micronovae.com/ModRewrite/ModRewrite.html)
- Ionics ISAPI Rewrite Filter (http://www.codeplex.com/IIRF)

Az első kettő fizetős (igaz, az ISAPI_Rewrite-nak van Lite verziója, ami freeware) a harmadik viszont ingyenes és kiváló - megmutatom, hogy kell használni pl. Joomlával.

Kefe 2009-03-07 11:24

Tehát letöltöd az Ionics Rewrite modul bin fájlokat és kibontod valahová, mondjuk C:\Ionic ISAPI Rewrite
A két legfontosabb fájl (gyakorlatilag más nem is kell):
  • IsapiRewrite4.dll
  • IsapiRewrite4.ini

Először nyisd meg az IsapiRewrite4.ini fájlt és illeszd be a Joomla specifikus rewrite szabályokat (a Kanga JoomSEF pl. simán elmegy ezzel):
Kód:

RewriteLog c:\iirftemp\iirfLog_0.out
RewriteLogLevel 0

MaxMatchCount 10

RewriteCond %{URL} ^(/component/option,com) [NC,OR]
RewriteCond %{URL} (/|\.htm|\.php|\.html|/^.*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /(.*) /index.php [L,U]

Az első sorban lévő iirftemp könyvtár lesz a log fájlok foldere - ne felejtsd el létrehozni a könyvtárat!

A második sor a logolás mértékét adja meg, ahol a RewriteLogLevel 0 pl. azt jelenti: zeró logolás. Ha jól működik a modul, nincs szükség a logolásra, csak lassítja az IIS-t. Ha bajok vannak, akkor állítsd 3-ra a hibákért, vagy 5-re a full logolásért, ekkor minden átirányítási művelet logolva lesz, kiváló diagnosztikai lehetőség, látod, hogy mely URL-ekhez nyúl hozzá és melyekhez nem a beállított szabályok szerint.

Most pedig add hozzá a IsapiRewrite4.dll fájlt a domain szűrőihez:
IIS alkalmazáskiszolgáló / kikeresed a weblapot / weblap tulajdonságai / ISAPI szűrők / Hozzáadás...


A filter neve legyen pl. Ionics ISAPI Rewrite, illetve tallózd ki a merevlemezről a dll fájlt és add hozzá. Ha jól csináltad, akkor megjelenik a filter:


Mentés után jöjjön egy IISreset, majd ki is próbálhatod, hogy működik-e.

Jó hír, hogy működés közben a szűrő mindíg meghívja az ini -fájlt, tehát nem kell IISreset a tesztelés közben, ha módosítottál a Rewrite szabályokon.

Még valami, telepítés után találsz Example könyvtárat példa Rewrite szabályokkal, melyeket egyszerüen tesztelhetsz a TestDrive.exe segítségével.

Zoli 2009-03-08 13:58

Kefe, köszönöm nagyszerű a leírás. Az IIS-en végrehajtandó rewritokkal korábban nem igen foglalkoztam, mert csak fizetős mod_rewrite helyettesítővel találkoztam. Adott azonban a továbbiakban az a kérdés, hogy egy shared hosting csomaggal bíró user milyen módon tudja pótolni az Apache modult szerver admin támogatásának hiányában?
Egyenkőre ezt inkább költői kérdésnek tartom, de nagyon boldog lennék, ha valaki meglepne egy használható megoldással.

Kefe 2009-03-09 09:15

Nem ismerek más módot, mint az ISAPI Rewrite.
Ez viszont szerintem nem hordoz magában biztonsági rizikót, sebezhetőséget, nagyobb szerverterhelést, vagy bármit, ezért szerintem lebeszélhető a hoszting céggel, hogy beillesszék.

Nálunk pl. semmi akadálya beállítani a filtert.

Zoli 2009-03-10 07:59

Kefe, az ország, amelynek hosztingosaival leginkább kapcsolatba kerülök az a szuper UK. Egyik igen népszerű tárhelyszolgáltatójuknak még fix smtp hostja sincsen és a legnagyobb tárhelyes cég is egyenlő egy kalappal. Mindent tiltanak, rugalmasságuk a betonnal összemérhető.
De mindenképpen örvendetes, hogy vannak azért lehetőségek.


A pontos idő 18:32 , a GMT +2 időzóna szerint.

Powered by vBulletin®, Copyright © 2000 - 2020, Jelsoft Enterprises Ltd.