Ana içeriğe geç

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_rewrite SEO için neden önemli?

Arama motorları temiz ve anlamlı URL’leri daha iyi indeksler.

.htaccess performansı 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.