Nginx no tiene .htaccess. No está desactivado ni puede activarse: leer un archivo en cada directorio en cada petición es exactamente el coste que Nginx existe para evitar. Las reglas viven en la configuración del servidor y se leen una vez al arrancar.
Un sitio traído de Apache se lleva su .htaccess consigo, y el archivo sencillamente se ignora. Nada da error. Las reglas simplemente dejan de ocurrir: así es como una redirección, una denegación o una reescritura desaparecen en silencio durante una migración.
Redirigir a https
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
De www a sin www
server {
listen 443 ssl;
server_name www.yourdomain.com;
return 301 https://yourdomain.com$request_uri;
}
Los enlaces permanentes bonitos de WordPress
location / {
try_files $uri $uri/ /index.php?$args;
}
Denegar un directorio
location ^~ /private/ {
deny all;
}
Protección con contraseña
location /staging/ {
auth_basic "Staging";
auth_basic_user_file /etc/nginx/.htpasswd;
}
Cabeceras de caché en archivos estáticos
location ~* \.(jpg|jpeg|png|webp|gif|ico|css|js|woff2)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
Pruebe antes de recargar, siempre:
nginx -t. Nombra el archivo y la línea de lo que no le gusta, y una recarga con mala configuración deja corriendo la anterior en vez de romper el sitio.
