Ne lovim adesea de necesitatea de a face o redirecționare 301 a unui site dintr-un subdirector din root (default: C:\inetpub\wwwroot) către un alt domeniu sau către un subdomeniu. În Windows Server acest lucru se poate face din fișierul web.config, sau mai simplu folosind modulul „URL Rewrite”.
Să presupunem că avem în root (default: C:\inetpub\wwwroot) un subdirector care poate fi un sub-domeniu numit „forum” (Ex: http://freepedia.ro/forum/) și vrem sa îl redirecționam pe un domeniu sau subdomeniu Ex: http://forum.freepedia.ro/ sau http://domeniu.ro/, procedam în felul următor:
Varianta 1.
Din consola IIS, Internet Information Services (IIS) Manager, în panoul din stânga Connections => Sites, selectam Sites => Nume.site (in cazul nostru "WebSite") în fereastra din dreapta click pe modulul Url Rewrite în panoul din dreapta selectam Actions => Add rules(s)..
În fereastra „Add Rule” selectați Inbound Rule => Blank Rule.
În fereastră Edit Inbound setam:
Requested URL => Matches the Patern
Using =>Regular Expresions
Patern => ^forum/(.*)$
Action type => Redirect
Redirect URL => http://freepedia.ro/forum/{R:1}
Redirect type => Permanent (301) - tipul redirecționări: 301, 302, 303, 307.
Cu modulul "URL Rewrite 2.0" instalat, puteți face redirectarea din fișierul web.config, adaugați în fișierul web.config din rădăcina domeniului (root) pe care vreți sa-l redirecționați următorul cod:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirectionare Sub-director catre Domeniu sau SubDomeniu" stopProcessing="true">
<match url="^forum/(.*)$" ignoreCase="false" />
<action type="Redirect" url=http://forum.freepedia.ro/{R:1} redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Varianta 2.
În cazul în care avem un site în root(default: C:\inetpub\wwwroot), de exemplu un site pe platforma Joomla, este indicat să facem redirecționarea de tipul 301 direct din subdirector (un cazul exemplificat subdirectorul "forum"), deoarece în multe cazuri regulile din web.config nu sunt compatibile și pot apare conflicte care cauzează erori.
Din consola IIS, Internet Information Services (IIS) Manager, în panoul din stânga Connections => Sites, selectam Sites => Nume.site (in cazul nostru "WebSite") => Forum (subdirectorul-site-ul redirecționat), îl selectam - în fereastra din dreapta click pe modulul Url Rewrite în panoul din dreapta selectăm Actions => Add rules(s).. , exact ca în exemplul precedent.
În fereastra Edit Inbound setăm:
Requested URL => Matches the Patern
Using =>Regular Expresions
Patern => ^(.*)$
Action type => Redirect
Redirect URL => http://freepedia.ro/forum/{R:1}
Redirect type => Permanent (301) - tipul redirecționări: 301, 302, 303, 307.
Dacă este necesar dezactivați regulile moștenite din root de la platforma Joomla (în exemplul de fata): Internet Information Services (IIS) Manager, în panoul din stânga Connections => Sites, selectăm Sites => Nume.site (în cazul nostru "WebSite") => Forum (subdirectorul-site-ul redirecționat), îl selectam și în fereastra din dreapta click pe modulul Url Rewrite, în panoul din dreapta vor fi regulile din fisierul web.config, dezactivati toate regulile din panou exceptand regula de redirectionare a subdirectorului (site-ului) pe care doriti sa-l redirectionati (in exemplul de fata "forum") și eventual dacă exista, regula pentru canonical de la www către non-www acesta nu se va dezactiva.
Explicatie:
CanonicalHostNameRule1 - Redirectionare Canonical WWW to non-WWW => nu se dezactiveaza (daca exista)
Redirectare forum in SubDomeniu - Redirectionare subdirector-site => nu se dezactivează!
Joomla Rule 1 -regula moștenita din root => se dezactivează (dacă este necesar)
Joomla Rule 2 -regula moștenita din root => se dezactivează (dacă este necesar)
Rule xx??? - alte reguli de rescriere sau redirecționare URL => se dezactivează (dacă este necesar)
Redirecționarea se poate face și din fișierul web.config dacă aveți instalat Modulul URL Rewrite. Fișierul web.config dacă nu exista îl creați cu notepad, editați fișierul adăugând codul de mai jos și puneți fișierul web.config în rădăcina subdirectorului (site-ului) pe care vreți sa-l redirecționați:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirectionare Sub-director catre Domeniu sau SubDomeniu" stopProcessing="true">
<match url"^(.*)$" ignoreCase="false" />
<action type="Redirect" url="http://forum.freepedia.ro/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Evident că este necesar să înlocuiți în fișierul web.config și în setările din modulului Url Rewrite, denumirea subdirectorului "forum" și url-ul http://forum.freepedia.ro/ cu denumirile corespunzătoare pentru setările dvs.:
http://forum.freepedia.ro/ => domeniul.meu.ro - domeniul către care se face redirecționarea.
forum => Nume.Director - denumirea exacta a subdirectorul (site-ului) redirecționat.