6. April 2011
János Berke
IIS
Nagy találmány az URL Rewrite. Nagyon sok érdekes dolgot meg lehet vele csinálni, például aldomainek kezelését vagy több domain egy sitehoz való rendelését is. Nem akartam külön IIS Website-ot létrehozni az aldomaineknek/domaineknek, hanem a website wwwroot mappájának egy almappájába akartam tenni. Na itt jön képbe az Url Rewrite.
Nézzünk egy példát:
Van egy domain nevem, pl. azendomainem.hu. Ennek szeretnék egy aldomaint, nevezzük aldomain-nek. Így az url aldomain.azendomainem.hu lesz.
- Első lépésben az IIS Manager-ben a site binding-jai közzé felveszem az aldomain.azendomainem.hu host headert,
- létrehozok egy mappát aldomain néven a site wwwroot mappájában,
- végül az alábbi bejegyzést beleteszem a web.config-ba, ami az azendomainem.hu wwwroot mappájában található:
<system.webServer>
<rewrite>
<rules>
<rule name="aldomain.azendomainem.hu">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^aldomain.azendomainem.hu$" />
<add input="{PATH_INFO}" pattern="^/aldomain/" negate="true" />
</conditions>
<action type="Rewrite" url="\aldomain\{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
Természetesen, ha egy másik domain nevet akarok, akkor azt is a fenti módon tudom megcsinálni, bár az alábbi szabály sokkal hatékonyabb:
<system.webServer>
<rewrite>
<rules>
<rule name="masikdomain.com">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www.)?masikdomain.com$" />
<add input="{PATH_INFO}" pattern="^/masikdomain/" negate="true" />
</conditions>
<action type="Rewrite" url="\masikdomain\{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
Ezekkel az egyszerű beállításokkal nem szemetelem tele az IIS-t sem, illetve könnyen változtathatok rajta - pl. mappa átnevezés esetén.