# Heritage Cafe & Bakery — Apache ayarları (Next.js statik çıktı / out/)
# Bu dosya build sırasında out/.htaccess olarak kopyalanır; sunucuya mutlaka birlikte yüklenmeli.

Options -Indexes
DirectoryIndex index.html
AddDefaultCharset UTF-8
AddType application/manifest+json .webmanifest

ErrorDocument 404 /404.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

  # Search Console doğrulama dosyaları (googleXXXX.html) her iki adreste de yönlendirmesiz açılsın.
  RewriteRule ^google[0-9a-f]+\.html$ - [L]

  # ── Tek adres: http ve www'lu istekler https://heritagecafe.com.tr'ye 301 ile gider ──
  # Sunucu bir proxy/CDN arkasındaysa %{HTTPS} hep "off" görünür ve sonsuz yönlendirme olur.
  # Yayından sonra site açılmazsa bu 3 satırı silip tekrar yükleyin.
  RewriteCond %{HTTPS} off [OR]
  RewriteCond %{HTTP_HOST} ^www\. [NC]
  RewriteRule ^ https://heritagecafe.com.tr%{REQUEST_URI} [L,R=301]

  # ── Eski site (ASP.NET) adresleri → yeni sayfalar ──
  # Menü kategorileri ve ürünleri → yeni menüdeki ilgili bölüm
  RewriteRule ^menu/tatlilar(/.*)?$                 /menu/#tatli   [R=301,NE,L]
  RewriteRule ^menu/tostlar(/.*)?$                  /menu/#tost    [R=301,NE,L]
  RewriteRule ^menu/salatalar(/.*)?$                /menu/#salata  [R=301,NE,L]
  RewriteRule ^menu/sandvicler(/.*)?$               /menu/#sandvic [R=301,NE,L]
  RewriteRule ^menu/(espresso-bazli-kahveler|turk-kahveleri|soguk-kahveler)(/.*)?$ /menu/#kahve [R=301,NE,L]
  RewriteRule ^menu/sicak-icecekler(/.*)?$          /menu/#sicak   [R=301,NE,L]
  RewriteRule ^menu/bitki-caylari(/.*)?$            /menu/#bitki   [R=301,NE,L]
  RewriteRule ^menu/(soguk-icecekler|frozenlar|milkshake)(/.*)?$ /menu/#yaz [R=301,NE,L]
  # Artık menüde olmayan kategoriler (pizza, burger, cajun…) → menünün başı
  RewriteRule ^menu/(pizzalar|burgerler|cajun)(/.*)?$ /menu/ [R=301,L]
  # Kurumsal sayfalar
  RewriteRule ^icerik(/.*)?$                        /hakkimizda/   [R=301,L]
  RewriteRule ^referanslar/?$                       /hakkimizda/   [R=301,L]
  RewriteRule ^foto-galeri/?$                       /galeri/       [R=301,L]
  RewriteRule ^hizmetlerimiz/?$                     /siparis/      [R=301,L]
  RewriteRule ^insan-kaynaklari/?$                  /iletisim/     [R=301,L]
  # Eski site haritaları
  RewriteRule ^(sayfalar|icerik|kategori-icerik|urun|kategori-urun)-sitemap\.xml$ /sitemap.xml [R=301,L]
  # Eski sitenin görsel/yönetim klasörü: kalıcı olarak kaldırıldı
  RewriteRule ^WebKontrol/ - [G,L]

  # ── Sondaki eğik çizgi: /menu → /menu/ (gerçek dosya değilse) ──
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !/$
  RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{2,5}$
  RewriteRule ^(.*)$ /$1/ [R=301,L]
</IfModule>

# ── Sıkıştırma ──
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/xml application/javascript text/javascript application/json application/manifest+json image/svg+xml
</IfModule>

# ── Önbellek ──
# _next/static altındaki dosyaların adında içerik özeti (hash) var; değişince adı da değişir → 1 yıl güvenle önbelleklenir.
# HTML ve sayfa verileri (.txt) her zaman taze kontrol edilir ki yeni build hemen görünsün.
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 week"
  ExpiresByType text/html "access plus 0 seconds"
  ExpiresByType text/plain "access plus 0 seconds"
  ExpiresByType application/xml "access plus 1 hour"
  ExpiresByType application/pdf "access plus 1 day"
</IfModule>

<IfModule mod_headers.c>
  <FilesMatch "\.(html|txt)$">
    Header set Cache-Control "no-cache"
  </FilesMatch>
  <If "%{REQUEST_URI} =~ m#^/_next/static/#">
    Header set Cache-Control "public, max-age=31536000, immutable"
  </If>

  # Temel güvenlik başlıkları
  Header always set X-Content-Type-Options "nosniff"
  Header always set Referrer-Policy "strict-origin-when-cross-origin"
  Header always set X-Frame-Options "SAMEORIGIN"
</IfModule>
