Yazı Seoliz.com yazarı İbrahim Çakıcı'ya aittir.
SEF hakkında bilgi almak istiyorsanız alanında Türkiyede ilk yazılardan olan SEF Nedir ve Avantajları yazısını okumalısınız. Htaccess (HyperText access) ile SEF bağlantı yapımından biraz bahsedelim.
seoliz.com/rastgele/seo/htaccess-ile-sef-url-yapimi-79.php dosyasını çalıştırmak için .php uzantı yerine .html uzantısı kullanacağız. Yani www.seoliz.com/htaccess-ile-sef-url-yapimi.htm olacak. Bunları yapmadan önce .htaccess dosyası içersinde kullanacağımız bir takım kodlardan bahsetmek isterim.
RewriteEngine On: Bağlantı yönlendirmesini aktif ediyoruz.
RewriteBase: Bağlantı yönlendirmemizin aktif olacağı klasörün adını yazıyoruz. Mesela tüm yönlendirmeler ana dizinde gerçekleşiyorsa / işaretini koymamız yeterli olacaktır. Varsayalım seo klasörü içersinde gerçekleşiyorsa /seo şeklinde yazmamız gerekli.
RewriteRule: Bağlantı yönlendirme kodumuz. Hangi sayfanın neye yönleneceğini belirteceğiz.
RewriteCond: RewriteRule içersinde kullandığımız bayraklara verilen ad. Örnek bayraklar: R=301, F, L, NC, QSA.
Şimdi de .htaccess içinde kullanabileceğimiz birkaç önemli düzenli ifadelerden bahsedeceğim.
* # İfadenin başında kullanıldığında o satırı yorum satırı olarak algılıyor.
* (.) Herhangi bir karakter olduğunu ifade eder.
* (+) İfadenin bir fazlasını belirtir. Önünde bir nokta kullanılarak bir karakter fazlası anlamında RewriteRule içersinde kullanılır.
* (?) Sıfır veya bir tane olduğunu belirtir.
* (*) Sıfır ve daha büyük olabildiğini belirtir.
* (^) Seçili ifadenin başlangıç noktasını belirtir.
* ($) Seçili ifadenin bitiş noktasını belirtir.
* (!) Not ifadesidir. Durumu olumsuza çevirir. Genelde RewriteCond parametreleriyle kullanılır.
* (\) Kod yapısını bozacak karakterleri normal görünüme çevirir. (Örnek: . veya )
* (NC) (nocase) Büyük ya da küçük harf duyarlılığını kaldırır.
Örnek Kodlar
Buradaki işlev şudur: Anadizinde (RewriteBase /) seoliz.html adresini ziyaret ettiğimizde seoliz.php dosyası çalışacaktır. Ama adresteki görünüm seoliz.php değil de seoliz.html olacaktır.
1. seoliz.php?bolum=analiz&icerik=anahtarkelimeler
2. seoliz.php/analiz/anahtarkelimeler
Yukarıdaki string değişkenlerle oluşturulmuş birinci bağlantımızı gelin .htaccess kullanarak ikinci bağlantıdaki hale getirelim. Nasıl mı?
Öntanım: seoliz.html dosyasına girildiğinde seoliz.php dosyasının direkt olarak açılmasını istiyorum yani, seoliz.html dosyasının açılma işleminde seoliz.php dosyasına yönlensin. Bunu nasıl yapabiliriz?
3. satırdaki R=301, bir RewriteRule bayrağıdır. Buna RewriteCond deniliyor. İşlem bu bayrak ile gerçekleştiriliyor.
Çok sık karşılaşılan bir hata: mod_rewrite kullanımında RewriteBase / ifadesi .htaccess içersinde kullanılmazsa stil.css dosyalarınız hata verecektir.
URL ReWrite Müthiş Faydası: Bağlantılarınızdaki string değerlerin lamerlerce görülmeyip, herhangi bir işleme mağdur kalmamalarını sağlamaktadır.
Kaynak: http://www.seoliz.com/sef-search-engine-friendly-nedir-ve-avantajlari.htm
SEF hakkında bilgi almak istiyorsanız alanında Türkiyede ilk yazılardan olan SEF Nedir ve Avantajları yazısını okumalısınız. Htaccess (HyperText access) ile SEF bağlantı yapımından biraz bahsedelim.
seoliz.com/rastgele/seo/htaccess-ile-sef-url-yapimi-79.php dosyasını çalıştırmak için .php uzantı yerine .html uzantısı kullanacağız. Yani www.seoliz.com/htaccess-ile-sef-url-yapimi.htm olacak. Bunları yapmadan önce .htaccess dosyası içersinde kullanacağımız bir takım kodlardan bahsetmek isterim.
RewriteEngine On: Bağlantı yönlendirmesini aktif ediyoruz.
RewriteBase: Bağlantı yönlendirmemizin aktif olacağı klasörün adını yazıyoruz. Mesela tüm yönlendirmeler ana dizinde gerçekleşiyorsa / işaretini koymamız yeterli olacaktır. Varsayalım seo klasörü içersinde gerçekleşiyorsa /seo şeklinde yazmamız gerekli.
RewriteRule: Bağlantı yönlendirme kodumuz. Hangi sayfanın neye yönleneceğini belirteceğiz.
RewriteCond: RewriteRule içersinde kullandığımız bayraklara verilen ad. Örnek bayraklar: R=301, F, L, NC, QSA.
Şimdi de .htaccess içinde kullanabileceğimiz birkaç önemli düzenli ifadelerden bahsedeceğim.
* # İfadenin başında kullanıldığında o satırı yorum satırı olarak algılıyor.
* (.) Herhangi bir karakter olduğunu ifade eder.
* (+) İfadenin bir fazlasını belirtir. Önünde bir nokta kullanılarak bir karakter fazlası anlamında RewriteRule içersinde kullanılır.
* (?) Sıfır veya bir tane olduğunu belirtir.
* (*) Sıfır ve daha büyük olabildiğini belirtir.
* (^) Seçili ifadenin başlangıç noktasını belirtir.
* ($) Seçili ifadenin bitiş noktasını belirtir.
* (!) Not ifadesidir. Durumu olumsuza çevirir. Genelde RewriteCond parametreleriyle kullanılır.
* (\) Kod yapısını bozacak karakterleri normal görünüme çevirir. (Örnek: . veya )
* (NC) (nocase) Büyük ya da küçük harf duyarlılığını kaldırır.
Örnek Kodlar
Kod:
1 RewriteEngine On
2 RewriteBase /
3 RewriteRule ^seoliz\.html$ seoliz.php [NC]
Buradaki işlev şudur: Anadizinde (RewriteBase /) seoliz.html adresini ziyaret ettiğimizde seoliz.php dosyası çalışacaktır. Ama adresteki görünüm seoliz.php değil de seoliz.html olacaktır.
1. seoliz.php?bolum=analiz&icerik=anahtarkelimeler
2. seoliz.php/analiz/anahtarkelimeler
Yukarıdaki string değişkenlerle oluşturulmuş birinci bağlantımızı gelin .htaccess kullanarak ikinci bağlantıdaki hale getirelim. Nasıl mı?
Kod:
1 RewriteEngine On
2 RewriteBase /
3 RewriteRule ^seoliz.php/(.+)/(.+)$ seoliz.php?bolum=$1&icerik=$2 [NC]
Öntanım: seoliz.html dosyasına girildiğinde seoliz.php dosyasının direkt olarak açılmasını istiyorum yani, seoliz.html dosyasının açılma işleminde seoliz.php dosyasına yönlensin. Bunu nasıl yapabiliriz?
Kod:
1 RewriteEngine On
2 RewriteBase /
3 RewriteRule ^seoliz\.html$ seoliz.php [R=301, NC]
3. satırdaki R=301, bir RewriteRule bayrağıdır. Buna RewriteCond deniliyor. İşlem bu bayrak ile gerçekleştiriliyor.
Çok sık karşılaşılan bir hata: mod_rewrite kullanımında RewriteBase / ifadesi .htaccess içersinde kullanılmazsa stil.css dosyalarınız hata verecektir.
URL ReWrite Müthiş Faydası: Bağlantılarınızdaki string değerlerin lamerlerce görülmeyip, herhangi bir işleme mağdur kalmamalarını sağlamaktadır.
Kaynak: http://www.seoliz.com/sef-search-engine-friendly-nedir-ve-avantajlari.htm