SEO Turk Arama Motoru Optimizasyonu - SEO Forum

 
Seo Fabrika

Geri git   SEO Turk Arama Motoru Optimizasyonu - SEO Forum > SEO Turk > Kodlama ve Programlama Altyapısı

Kodlama ve Programlama Altyapısı robots.txt, 301 ve 302 yönlendirmeleri, .htaccess, sitemap.xml gibi server düzeyinde halledilmesi gereken ve SEO sonuçlarını direk olarak etkileyen faktörler hakkında herşey.

Yanıtla
 
Referans Gösterin Seçenekler Stil
  #1 (permalink)  
Alt 7. Mayıs 2008, 23:47:35
XiLoNeN - ait Kullanıcı Resmi (Avatar)
SEOkolik
 
Üyelik Tarihi: Mayıs 2008
Nerden: Bursa - Konya
Mesajlar: 128
XiLoNeN - İCQ üzeri Mesaj gönder XiLoNeN - MSN üzeri Mesaj gönder
Standart mod_rewrite nedir? Nasıl kullanılır?

Kod:
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/var/ahmet/mehmet klasöründe bulunan dosyalarımız url olarak [SEO Turk forumlarında bulunan linkleri görebilmek için üyelik gerekmektedir. ] yolu ile çağırılıyorsa /home/var/ahmet altındaki .htaccess’de


Kod:
RewriteBase /cenk
bulundurmamız gerekiyor.

Kod:
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} index.php
bu satır, eğer %{REQUEST_URI}, index.php ise diyor. yiit.php’nin başına ünlem koyarak (!yiit.php) REQUEST_URI, index.php değilse diyebilirdik.




Kod:
RewriteCond %{HTTP_HOST} deneme.seoturk.com
burada ise eğer HTTP_HOST, deneme.seoturk.com ise diyoruz. .htaccess dosyasında düzenli ifadeler (regular expressions - regex) de kullanabiliriz. Aynı örneği geliştirelim:




Kod:
RewriteCond %{HTTP_HOST} !www.seoturk.com
RewriteCond %{HTTP_HOST} ([^.]+).seoturk.com
burada subdomain eğer www dışında bir şeyse dedik. ileride subdomain ismine erişmek istersek %1 değişkenini kullanabiliriz. burada dikkat edilmesi gereken şey iki rewritecond arasında bir AND olduğu. yani sadece bu ikisini de sağlayan durumlar rewriterule’a geçebilecek. eğer ikisinden birini sağlamasını isteseydik OR bayrağını kullanacaktık:


Kod:
RewriteCond %{HTTP_HOST} !www.seoturk.com [OR]
RewriteCond %{HTTP_HOST} ([^.]+).seoturk.com
Kullanabildiğimiz Değişkenler

RewriteCond ile oluşturduğumuz değişkenlere %n şeklinde ulaşabiliyoruz. örneğin



Alıntı:
RewriteCond %{HTTP_HOST} ^(.*).(.*)
böyle bir kuralımız varsa birinci (.*) yani HTTP_HOST’un ilk noktadan önceki parantezlerle ayrılmış kısmı %1, ilk noktadan sonraki parantezlerle ayrımış kısmı %2 oluyor.

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} ([^.]+).seoturk.com
RewriteRule ^(.*)$ yok.php?adres=$1&sd=%1
bu durumda gro.tiiy.yiit.org/ahmet.php aslında seoturk.com/yok.php?adres=ahmet.php&sd=gro.tiiy olarak işlem görecek.

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]
Bu kural gelen bütün istekleri yok.php’de $_GET[’adres’] değişkeninin içine atar. yani /index.php’ye girmek istedi diyelim ki kullanıcı, sunucu ona aslında yok.php?adres=index.php’yi gösterir. Ama bu bir yönlendirme şeklinde olmaz, adres aynı kalır.

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 [SEO Turk forumlarında bulunan linkleri görebilmek için üyelik gerekmektedir. ]
ErrorDocument 403 [SEO Turk forumlarında bulunan linkleri görebilmek için üyelik gerekmektedir. ]

Server Değişkenleri

headers:

HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
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
Alıntı Yap ve Yanıtla
  #2 (permalink)  
Alt 8. Mayıs 2008, 18:05:05
philly - ait Kullanıcı Resmi (Avatar)
Yeni Üye
 
Üyelik Tarihi: Nis 2008
Mesajlar: 19
Standart

teşekkürler xilonen, ben bunları hep hazır kullandığım için bu kadar detay bilmiyordum. çoğu rewrite da htaccess te aynı kodu kullanıyor gördüğüm kadarıyla, sadece bazıları daha detaylı oluyor. Gerçekten SEO Optimizasyonu için çok önemli bir olay bu
Alıntı Yap ve Yanıtla
  #3 (permalink)  
Alt 9. Mayıs 2008, 21:45:18
XiLoNeN - ait Kullanıcı Resmi (Avatar)
SEOkolik
 
Üyelik Tarihi: Mayıs 2008
Nerden: Bursa - Konya
Mesajlar: 128
XiLoNeN - İCQ üzeri Mesaj gönder XiLoNeN - MSN üzeri Mesaj gönder
Standart

ewt sorgularda özellikle aynı tarz sistemi kullandıysan genelleme yapabiliyorsun açıkçası bende çok ileri seviyede daha bilmiyorum çalışmaya devam hep birlikte çğreneceğiz inşallah
Alıntı Yap ve Yanıtla
  #4 (permalink)  
Alt 12. Mayıs 2008, 08:48:37
Yeni Üye
 
Üyelik Tarihi: Mayıs 2008
Mesajlar: 19
Standart

xilonen merhaba philly dediği gibi hep hazır kullanılıyor daha yüzeysel olarak biliniyor sistemin çalısması için yetermi ona bakılıyor genelde bende aynı şekilde fakad detayları baya varmış gerçekten.

Teşekkürler.
Alıntı Yap ve Yanıtla
  #5 (permalink)  
Alt 7. Temmuz 2008, 18:42:11
antiseptic - ait Kullanıcı Resmi (Avatar)
SEOkolik
 
Üyelik Tarihi: Mayıs 2008
Mesajlar: 202
Standart

güzel makale olmuş yav ilk defa gördüm
Alıntı Yap ve Yanıtla
Yanıtla

Etiketler
detaylı bilgi, mor_rewrite nedir, rewrite hakkında, rewrite kuralları

Seçenekler
Stil

Yetkileriniz
Yeni konu açamazsınız
Konulara cevap yazamazsınız
Mesajlarınıza eklenti ekleyemezsiniz
Mesajlarınızı düzenleyemezsiniz

Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı





vBulletin® Version 3.7.0 Beta 4
Tüm Hakları SEO Türk'e Aittir. İçerik izinsiz kopyalanamaz.

Content Relevant URLs by vBSEO 3.1.0