![]() |
Seo rehberi Mod_Rewrite ayarlari mod_rewrite’ı veya htaccess dosyaları ile yönlendirme yapmayı duymayan kalmamıştır. standart bir htaccess dosyasına bakacak olursak: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] bu kurallar wordpress’in rewrite kuralları. 1. satırda Rewrite motorunun kullanılacağını belirtiyoruz. 2. satırda bu kuralların bütün kök ve alt dizinlerde geçerli olduğunu söylüyoruz. 3. satırda REQUEST_FILENAME değişkeninde tutulan isimde bir dosya eğer yoksa diyoruz 4. satırda REQUEST_FILENAME değişkeninde tutulan isimde bir klasör eğer yoksa diyoruz 5. satırda bütün istekleri index.php'ye gönder deyip L (LAST) bayrağı ile bu conditionları sağlayan durumlarda yapılacak son rewrite'ın bu olduğunu belirtiyoruz. Detaylı İnceleme RewriteEngine on|off Apache’de , öntanımlı olarak rewrite motoru kapalı olarak geliyor. mod_rewrite ile yönlendirme yapacaksak eğer ilk satırda RewriteEngine On’a ihtiyacımız var. RewriteOptions Seçenek Burada Kullanabileceğimiz iki seçenek var. MaxRedirects değeri ve inherit opsiyonu. MaxRedirects aynı isteğin kaç kere yeniden yazılacağını belirliyor. inherit ise MaxRedirets’in değerinin bir üst klasörde geçerli olan değer olmasını söylüyor. Öntanımlı olarak MaxRedirects=10, inherit ise kapalı. RewriteBase URL Fiziksel yer ile sanal yer farklı ise RewriteBase ile isteklerin nereye geldiğini belirtmemiz gerekiyor. Örneğin sunucuda /home/yiit/ahmet/mehmet klasöründe bulunan dosyalarımız url olarak www.site.com/cenk yolu ile çağırılıyorsa /home/yiit/ahmet altındaki .htaccess’de Kod: RewriteBase /cenk RewriteCond var1 var2 RewriteCond’u eğer var1 var2′ye uyuyorsa bir sonraki satıra geç şeklinde bir if yapısı olarak düşünebiliriz. şöyle örnekler sunabiliriz: Kod: RewriteCond %{REQUEST_URI} yiit.php Kod: RewriteCond %{HTTP_HOST} gro.tiiy.yiit.org Kod: RewriteCond %{HTTP_HOST} !www.yiit.org Kod: RewriteCond %{HTTP_HOST} !www.yiit.org [OR] RewriteCond ile oluşturduğumuz değişkenlere %n şeklinde ulaşabiliyoruz. örneğin Kod: RewriteCond %{HTTP_HOST} ^(.*).(.*) RewriteRule değişkenleri ise $n şeklinde. rewritecond ve rewriterule değişkenlerini aynı kuralın içinde kullanmak mümkün: Kod: RewriteCond %{HTTP_HOST} ([^.]+).yiit.org Sunucu değişkenleri ise %{SUNUCU_DEGISKENI} şeklinde kullanılıyorlar. tam listesini yazının sonuna ekliyorum. RewriteCond’da kullanabileceğimiz iki bayrak var. bunlar NC ve OR. NC (nocase) büyük-küçük harf duyarsız işlem yapılmasını söylüyor. OR ise daha önce söylediğim gibi iki rewritecond’u öntanımlı olan and yerine or ile bağlamasını söylüyor. bunların dışında RewriteCond parametreleri var. Wordpress örneğinde gördüğümüz -f ve -d dışında -s ve -l var. -s’nin işlevi -f gibi, fakat yaratılmış bir dosyanın var olup olmadığından fazla olarak bu dosyanın boyutunun 0′dan büyük olup olmadığına da bakıyor. -l ise böyle bir symlink olup olmadığına bakıyor. bu dört parametre de ünlem işareti ile birlikte anlamlarının tersine kullanılabilir. (!-f) RewriteRule Örnekle başlayalım: Kod: RewriteRule ^(.*)$ yok.php?adres=$1 [L] RewriteRule bayrakları [bayrak] şeklinde kullanılıyorlar. R=301: Belirttiğiniz adrese 301 yönlendirmesi yapar. F: Forbidden belirttiğiniz adres 403 döndürür. Kullanıcılara sayfayı görmesi için izin verilmez. RewriteCond ile birlikte kullanılıp toplu adres engellemesi yapılabilir. L: Bu rewriterule’ın son yönlendirme olduğunu söyler. Eğer bu bayrak olmazsa mod_rewrite maxredirects değişkeniniz doğrultusunda sürekli yönlendirme yapacaktır. NC: büyük küçük ayrımı yapmadan rewrite yapar. QSA: GET ile gelen isteği de adrese ekler. ErrorDocument hatakodu URL .htaccess dosyamızda ErrorDocument kullanarak yönlendirme de yapabiliriz. Örnek kullanımı: Kod: ErrorDocument 404 http://www.site.com/404.php headers: HTTP_USER_AGENT HTTP_REFERER HTTP_****** HTTP_FORWARDED HTTP_HOST HTTP_PROXY_CONNECTION HTTP_ACCEPT connection & request: REMOTE_ADDR REMOTE_HOST REMOTE_USER REMOTE_IDENT REQUEST_METHOD SCRIPT_FILENAME PATH_INFO QUERY_STRING AUTH_TYPE server internals: DOCUMENT_ROOT SERVER_ADMIN SERVER_NAME SERVER_ADDR SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE system stuff: TIME_YEAR TIME_MON TIME_DAY TIME_HOUR TIME_MIN TIME_SEC TIME_WDAY TIME specials: API_VERSION THE_REQUEST REQUEST_URI REQUEST_FILENAME IS_SUBREQ Alintidir |
Bütün Zaman Ayarları WEZ +3 olarak düzenlenmiştir. Şu Anki Saat: 10:26 . |
2000- 2025
Tüm bağışıklıklar ve idelerden bağımsız olan sözcükleri sarfetmeye mahkumdur özgürlük