Nginx'te .htaccess yoktur. Kapatılmış değildir ve açılamaz: her istekte her dizinde bir dosya okumak, tam da Nginx'in var oluş sebebi olan kaçınılan maliyettir. Kurallar sunucu yapılandırmasında oturur ve açılışta bir kez okunur.

Apache'den taşınan bir site .htaccess'ini de yanında getirir ve dosya düpedüz yok sayılır. Hiçbir şey hata vermez. Kurallar yalnızca olmaz olur - bir yönlendirmenin, bir engelin ya da bir yeniden yazmanın taşımada sessizce kaybolması böyle olur.

https'e yönlendirme

server {
    listen 80;
    server_name yourdomain.com;
    return 301 https://$host$request_uri;
}

www'dan www'suza

server {
    listen 443 ssl;
    server_name www.yourdomain.com;
    return 301 https://yourdomain.com$request_uri;
}

WordPress'in güzel kalıcı bağlantıları

location / {
    try_files $uri $uri/ /index.php?$args;
}

Bir dizini engellemek

location ^~ /private/ {
    deny all;
}

Parola koruması

location /staging/ {
    auth_basic "Staging";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

Duruk dosyalarda önbellek başlıkları

location ~* \.(jpg|jpeg|png|webp|gif|ico|css|js|woff2)$ {
    expires 30d;
    add_header Cache-Control "public, immutable";
}
Yeniden yüklemeden önce her seferinde sınayın: nginx -t. Beğenmediği şeyin dosyasını ve satırını söyler; kötü bir yapılandırmayla yeniden yükleme ise siteyi bozmak yerine eskisini çalışır durumda bırakır.