Reglas en NGNIX
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;
. . .
}