On Mon, Jun 15, 2009 at 09:30:47AM -0400, NoSync wrote:
Hello everyone! I recently switched my main webserver (where I host clients'
websites) from apache to nginx and I wrote a custom generic configuration file
to handle everything in one place, so domains and subdomains are handled on the
fly by creating directories and subdirectories. Here's the relevant snippet:
server {
listen 80 default;
if ($host ~* ^(.*)\.(.*\..*)$) {
set $sub $1;
set $domain $2;
}
server_name _;
server_name_in_redirect off;
root /var/www/vhosts/$domain/$sub;
access_log /var/log/nginx/access.log combined;
error_log /var/log/nginx/error.log error;
include /etc/nginx/conf/wordpress_params;
location / {
root /var/www/vhosts/$domain/$sub;
index index.php index.html;
Everything works just fine as nginx is a great product ;-) Now, my only problem
lays in the fact I haven't been able to write a regexp to setup a global
redirect from, eg, domain.com to www.domain.com. Could anyone help me on this?
Use server_name. Instead of
if ($host ~* ^(.*)\.(.*\..*)$) {
set $sub $1;
set $domain $2;
}
you may write in 0.7.x
server {
listen 80 default;
server_name ~^(.*)\.(.*\..*)$;
set $sub $1;
set $domain $2;
...
}
As to the redirect:
server {
listen 80 default;
server_name _;
rewrite ^ http://www.$host$request_uri?;
}
server {
listen 80 default;
server_name www.*;
...
}