Reglas en NGNIXngnixellogo

Reglas en NGNIX

Las reglas ngnix se definen una sola vez dentro del archivo de configuración /etc/nginx/sites-available/dominio.vhost, una vez definido el vhosts, los tiempos de respuesta serán mejores comparado con el servidor web apache. La web tendrá una respuesta mucho más rápida sobretodo en situaciones de alto tráfico web.

Comenzaremos por definir reglas básicas :

Vemos una traducción sencilla de htaccess que utiliza Apache Server hacia una regla Ngnix.

mod_rewrite regla:

RewriteRule ^[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /productos.php?c=$1&categoria=$3 [QSA,L,NC]

Se convierte en nginx:

rewrite ^/[a-z0-9_-]*-f([0-9]+)/?(p([0-9]+)\.html)?$ /productos.php?c=$1&categoria=$3 last;

 

Redireccionamiento de sitemaps para SEO YAST

 

rewrite ^/sitemap_index\.xml$ /index.php?sitemap=1 last;

rewrite ^/([^/]+?)-sitemap([0-9]+)?\.xml$ /index.php?sitemap=$1&sitemap_n=$2 last;

 

Redireccionando un dominio a otro

rewrite ^(.*)$ http://www.nuevodominio.com/$1 permanet;

 

Redirigir servidor sin www a www.tudominio.com

server {

listen 80;

server_nametudominio.com;

return 301 $scheme://www.tudominio.com$request_uri;

}

Una dirección específica por otra

rewrite /pagina1.html /pagina2.html last;

Redireccionado de http a https:

 

if ($scheme != “https”) {

rewrite ^ https://www.mydomain.com$uri permanent;

}

 

TAMBIÉN te puede interesar la Configuación de Ngnix en prestashop.

 

Convertir un “NO ES” Regla

Esta regla Apache coincide con las direcciones URL que son “no dominio.com y no www.dominio.com” (que se podría llamar esta lógica “al revés”) y les vuelve a escribir a www.servidoresadmin.com:

RewriteCond %{HTTP_HOST} !servidoresadmin.com

RewriteCond %{HTTP_HOST} !www.servidoresadmin.com

RewriteRule (.*) https://www.servidoresadmin.com$1

EN NGNIX:

server {

listen 80;

server_name dominio.com www.servidoresadmin.com;

}

 

server {

listen 80 default_server;

server_name _;

return 301 https://www.servidoresadmin.com$request_uri;

}

La conversión de reglas que permitan a WordPress enlaces permanentes amigables

.Htaccess

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>
NGNIX

location / {

try_files $uri $uri/ /index.php?$args;

}

 

La conversión de Reglas de las solicitudes dinámicas en un servidor App

.Htaccess

DocumentRoot /var/www/myapp.com/current/public

RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f

RewriteCond %{SCRIPT_FILENAME} !maintenance.html

RewriteRule ^.*$ %{DOCUMENT_ROOT}/system/maintenance.html [L]

RewriteCond %{REQUEST_FILENAME} -f

RewriteRule ^(.*)$ $1 [QSA,L]

RewriteCond %{REQUEST_FILENAME}/index.html -f

RewriteRule ^(.*)$ $1/index.html [QSA,L]

RewriteCond %{REQUEST_FILENAME}.html -f

RewriteRule ^(.*)$ $1.html [QSA,L]

RewriteRule ^/(.*)$ balancer://app-server_cluster%{REQUEST_URI} [P,QSA,L]

 

En NGNIX

location / {

root /var/www/myapp.com/current/public;

try_files /system/maintenance.html

$uri $uri/index.html $uri.html

@app-server_cluster;

}

location @app-server_cluster {

proxy_pass http://app-server;

}

 

Especificar el orden de los archivos que Apache intentará servir como un índice del directorio mediante la colocación de una línea como esta en el archivo de htaccess:

 

DirectoryIndex index.html index.htm

<IfModule mod_dir.c>

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

</IfModule>

 

En NGNIX

server { . . .

index index.php index.html index.htm;

. . .

}