mod_rewrite Kurulumu URL Yapılandırma Rehberi
Bu rehberde Apache web sunucusunda mod_rewrite modülünü etkinleştirme ve .htaccess kullanarak SEO uyumlu, temiz URL yapıları oluşturma işlemlerini öğreneceksiniz.
URL rewrite sistemi sayesinde:
- Karmaşık query string yapıları sadeleşir
- SEO performansı artar
- Kullanıcı deneyimi iyileşir
- Daha profesyonel URL yapıları oluşturulur
mod_rewrite Nedir?
Apache mod_rewrite, gelen URL isteklerini kurallara göre yeniden yazan güçlü bir modüldür.
Örnek:
/urun.php?id=5
yerine:
/urun/5
gibi SEO uyumlu URL’ler oluşturulabilir.
Ön Gereksinimler
Kuruluma başlamadan önce:
- Ubuntu 22.04 sunucu
- Apache Web Server kurulu
- sudo yetkisine sahip kullanıcı
1. Apache mod_rewrite Modülünü Aktif Etme
mod_rewrite modülünü etkinleştirmek için:
sudo a2enmod rewrite
Apache servisini yeniden başlatın:
sudo systemctl restart apache2
2. .htaccess Kullanımını Aktif Etme
Apache varsayılan olarak .htaccess dosyasını devre dışı bırakır.
Bunu açmak için VirtualHost dosyasını düzenleyin:
sudo nano /etc/apache2/sites-available/000-default.conf
AllowOverride Ayarı
Aşağıdaki bloğu ekleyin:
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Apache’yi yeniden başlatın:
sudo systemctl restart apache2
3. .htaccess Dosyası Oluşturma
.htaccess dosyasını oluşturun:
sudo nano /var/www/html/.htaccess
Rewrite motorunu aktif edin:
RewriteEngine On
4. Temel RewriteRule Örneği
Amaç
/hakkimizda → hakkimizda.html
``` id="h1t8qp"
HTML Dosyası
sudo nano /var/www/html/hakkimizda.html
<html>
<head>
<title>Hakkımızda</title>
</head>
<body>
<h1>Web Sitemiz Hakkında</h1>
</body>
</html>
Rewrite Kuralı
.htaccess içine ekleyin:
RewriteEngine On
RewriteRule ^hakkimizda$ hakkimizda.html [NC,L]
Açıklama:
NC → Büyük/küçük harf duyarsız
L → Son kural (daha fazla işlem yapma)
5. SEO Dostu Dinamik URL Yapısı
Eski URL:
sonuc.php?urun=gomlek&sezon=yaz
``` id="p4x7qd"
Yeni URL:
/gomlek/yaz
RewriteRule:
```apache id="l2v8qp"
RewriteRule ^([A-Za-z0-9]+)/([a-z]+)$ sonuc.php?urun=$1&sezon=$2 [QSA,L]
Açıklama:
$1 → ürün adı
$2 → sezon
QSA → mevcut query string’i korur
6. Bozuk Sayfaları Yönlendirme (SEO 301)
Amaç
Var olmayan sayfaları ana sayfaya yönlendirmek
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / [R=301,L]
Açıklama:
!-f → dosya değilse
!-d → klasör değilse
R=301 → kalıcı yönlendirme (SEO için kritik)
Sıkça Sorulan Sorular (SSS)
mod_rewriteSEO için neden önemli?
Arama motorları temiz ve anlamlı URL’leri daha iyi indeksler.
.htaccessperformansı etkiler mi?
Evet, küçük bir overhead oluşturur ancak modern sunucularda genellikle hissedilmez.
RewriteRule ile Redirect farkı nedir?
Redirect → Basit yönlendirme RewriteRule → Gelişmiş URL manipülasyonu
SEO açısından 301 neden önemli?
Sayfa değerini (link juice) korur ve sıralama kaybını önler.
Sonuç
Apache mod_rewrite ile:
SEO uyumlu URL yapıları oluşturabilirsiniz Eski URL’leri modern hale getirebilirsiniz Kullanıcı deneyimini artırabilirsiniz
Bu yapı özellikle SEO projeleri, blog sistemleri ve e-ticaret siteleri için kritik öneme sahiptir.
Daha gelişmiş Apache yapılandırmaları için Rabisu Bulut altyapısını kullanabilirsiniz.