IIS 7.5 Url Rewrite Aldomain Mapping

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.

Comments (2) -

Kádár Sándor 1/16/2012 8:54:35 AM

Kérdés: maradva az előbbi példánál.
Van egy aldomain.azendomainem.hu című oldalam.
Készen van, minden OK. De meggondoltam magam, és át szeretném keresztelni: palacsinta.azendomainem.hu -ra.
Hogyan tudom megcsinálni?
Anélkül, hogy a most működő weboldalt ne tegyem tönkre, ne kelljen teljesen újból kezdeni.
Egyébként az oldal Jooml-ban készült, és már sok adatot + felhasználót tartalmaz.

Valami hasonló dolgot csináltam a napokban. Mi HTTP 301 Redirect-el oldottuk meg ezt. Így a keresők is normálisan kezelték a változást, illetve akinek a kedvencek között volt a régi cím, az is eljutott az új linkekre. Ez csak akkor jó, ha a query string-ek és az oldalak nevei nem változtak, hanem csak tényleg az aldomain változott. Esetedben szerintem simán megy a redirect.

Add comment