Site icon Lanmen

Az ember aki átírta az URL-t

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>

IIS7 és url rewrite használata esetén nagyon fontos, hogy ki kell venni a Require SSL pipát az IIS managegement konzol megfelelő fülén, mert különben nem fog működni a dolog!
NGINX Update!

SSL átirányítás

server {
listen 80;
server_name mysite.com;
return 301 https://$server_name$request_uri;
}
server {
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;
}

Exit mobile version