A minap két hasonló kérés is befutott hozzám.
Az első az volt, hogy irányítsam át a domain.hu url-re érkező kéréseket a www.domain.xy címre egy linux/apache szerveren a második pedig az, hogy
irányítsam át a http://domain.xy címre érkezőket a https://domain.xy címre egy Windows/IIS7 szerveren.
Ez valamikor régen mindenféle aktív oldalakkal és egyéb módon megoldott átirányítás hegyekkel oldottuk meg, de manapság ez már mégiscsak béna megoldásnak számít.
A probléma most más sokkal egyszerűbben és elegénsabban megoldható mivel itt van nekünk a mod_rewrite és az url rewrite.
Az érdekes az, hogy az Apache és az IIS7 megoldása alapvető koncepcióját tekintve szinte teljesem megegyezik. II7 = URL Rewrite. Apache = mod_rewrite.
Az IIS7 még importálni is képes az Apache mod_rewrite szabályokat!
Mindkét megoldás sokkal több lehetőséget tartogat az alább ismertetett két lehetőségnél. Az érdeklődőknek íme két link:
http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html
Átirányítás www aldomainra
mod_rewrite
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain.xy [NC] RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.domain.xy/$1 [L,R]
url rewrite
<system.webServer>
<rewrite>
<rules>
<rule name=”Redirect URL to WWW ”
stopProcessing=”true”>
<match url=”.*” />
<conditions>
<add input=”{HTTP_HOST}” pattern=”^domain.xy$” />
</conditions>
<action type=”Redirect” url=”http://www.domain.xy/{R:0}” redirectType=”Permanent” />
</rule>
</rules>
</rewrite>
<system.webServer>
Árirányítás SSL-re
mod_rewrite
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
url rewrite
<system.webServer>
<rewrite>
<rules>
<rule name=”Redirect to HTTPS” stopProcessing=”true”>
<match url=”(.*)” />
<conditions><add input=”{HTTPS}” pattern=”^OFF$” />
</conditions>
<action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}” redirectType=”SeeOther” />
</rule>
</rules>
</rewrite>
<system.webServer>
SSL átirányítás
listen 80;
server_name mysite.com;
return 301 https://$server_name$request_uri;
}
listen 443;
server_name mysite.com;
}
Átirányítás www aldomainról www nélkülire
server {
listen 80;
server_name www.mysite.com;
return 301 http://mysite.com$request_uri;
}
server {
listen 80;
server_name mysite.com;
}
Átirányítás www aldomainról www nélküli SSL-re
server {
listen 80;
server_name www.mysite.com mysite.com;
return 301 http://mysite.com$request_uri;
}
server {
listen 443;
server_name mysite.com;
}