Configurar Nginx para las URLs amigables de WordPress

Hoy tuve un problema al habilitar las URLs amigables en WordPress, me encanta Nginx, simplemente no puedo usar otra cosa que no sea Nginx, asi que me puse a averiguar como configurar Nginx para que trabaje con la función de URLs amigables de WordPress.

Para configurar Nginx se tiene que hacer lo siguiente:

server
{
    server_name .example.com;

    access_log /var/log/nginx/example.com.access.log;

        error_log /var/log/nginx/example.com.error.log;

    root /var/www/example.com/html;

    index index.php index.html index.htm;

    # enforce www (exclude certain subdomains)
    #if ($host !~* ^(www|subdomain))
    #{
    #   rewrite ^/(.*)$ $scheme://www.$host/$1 permanent;
    #}

    # enforce NO www
    if ($host ~* ^www\.(.*))
    {
        set $host_without_www $1;
        rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
    }

    # unless the request is for a valid file, send to bootstrap
    if (!-e $request_filename)
    {
        rewrite ^(.+)$ /index.php?q=$1 last;
    }

    # catch all
    error_page 404 /index.php;

    # use fastcgi for all php files
    location ~ \.php$
    {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/example.com/html$fastcgi_script_name;
        include fastcgi_params;
    }

    # deny access to apache .htaccess files
    location ~ /\.ht
    {
        deny all;
    }
}

Ahora bien, en el anterior archivo de configuracion hay algo a tener en cuenta y son las dos siguientes partes:

# enforce www (exclude certain subdomains)
#if ($host !~* ^(www|subdomain))
#{
#   rewrite ^/(.*)$ $scheme://www.$host/$1 permanent;
#}

# enforce NO www
if ($host ~* ^www\.(.*))
{
    set $host_without_www $1;
    rewrite ^/(.*)$ $scheme://$host_without_www/$1 permanent;
}

Las anteriores lineas nos permiten configurar si queremos habilitar varios subdominios como el www o no.

# unless the request is for a valid file, send to bootstrap
if (!-e $request_filename)
{
    rewrite ^(.+)$ /index.php?q=$1 last;
}

La anterior linea nos permite decirle a Nginx que cualquier url que no sea valida, la redireccione al inicio.

Finalmente, cuando guardemos el archivo, procedemos a reiniciar Nginx y a cambiar la configuracion de las URLs en WordPress de la siguiente manera:

permalink

Espero les sirva.

Advertisements
This entry was posted in Uncategorized by andres. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s