Can rewrite change port? for eg, 80 to 443

Mansoor Peerbhoy mansoor at zimbra.com
Mon Jul 21 12:40:09 MSD 2008


In your plain http server block:

if ($uri ~* "/logging.php$") {
 rewrite ^/(.*)$ https://$host/$1 redirect;
}


In your https server block

if ($uri !~* "/logging.php$") {
 rewrite ^/(.*)$ http://$host/$1 redirect;
}


This is when you are using standard ports (80 for HTTP and 443 for HTTPS). If you are using non-standard ports (say 8080 for http, and 8443 for https, then in this case, you should have in your http block)

if ($uri ~* "/logging.php$") {
 rewrite ^/(.*)$ https://$host:8443/$1 redirect;
}

and correspondingly, in your https block, you should have:

if ($uri !~* "/logging.php$") {
 rewrite ^/(.*)$ http://$host:8080/$1 redirect;
}

The $host variable is the host portion of the URL that was used to reach your server
See http://wiki.codemongers.com/NginxHttpCoreModule for the list of variables

HTH
Mansoor






----- "baalchina" <baalchina at gmail.com> wrote:

| From: "baalchina" <baalchina at gmail.com>
| To: nginx at sysoev.ru
| Sent: Monday, July 21, 2008 12:48:36 PM GMT +05:30 Chennai, Kolkata, Mumbai, New Delhi
| Subject: Can rewrite change port? for eg, 80 to 443
|
| Hi, everyone.
| 
| I have a server running a php web forum. User logging into my site
| using 'logging.php'.
| 
| I had set up a https server using nginx, but consdering server load,
| I
| just want my user using https in only logging.php.
| 
| I want to settle this by using url rewrite. When my users click
| http://mysite.com/logging.php, nginx will automatic change the url to
| https://mysite.com/logging.php. And when my user click any other
| links
| in my site, for example, https://mysite.com/index.php, nginx will
| change https to http.
| 
| Can rewrite work like this?
| 
| Thank you!
| 
| BTW,changing my forum codes may work, but I didn't know much about
| php
| coding...so, I want to settle this in nginx rewrite...
| 
| -- 
| from:baalchina





More information about the nginx mailing list