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.
