Php-Nuke Seo - Adım -1 ve Php-Nuke Seo - Adım -2 makalemizi yazmıştık takip edenlerin yanı sıra php-nuke yeni adım atanlar içinde yararlı bir makale olacağından eminim lafın kısası bir çok php-nuke seo entegresi mevcuttur bunların bir çoğu sadece modül adlarını ve yazı başlıklarını seo çeviriyordu ve bunlar google tarafından düşük sınıf diye nitelendiriliyordu biz bunları ileri ve üst sınıflara kendi yaptığımız seo yöntemleri ile php-nuke ile tasarladığınız sitelerini hem kolay link sistemi ile hemde googlenin arama motoruna göre dizayn edeceğiz ama ilk önce Başlangıç seviyesinden başlayalım ilerleyen zamanlarda ileri seviyeye kadar gideriz.
Başlangıç seviyesi
Burada .htaccess, fonksiyonlar entegre mantığını kavrayacağız basit örneklerden oluşacak.
Orta seviyesi
Burada .htaccess, fonksiyonlar ve otomatik Türkçe destekli başlıklar yaratacağız.
İleri seviyesi
Burada .htaccess, fonksiyonlar, Jquery perma link anlatacağım.
Başlangıç seviyesi
php-nuke ile haşır neşir ama sadece belli php kodlarına müdahalede bulunanlar için adlandırdığım bir seviyedir. Başlangıç seviyesinde sadece .htaccess ve fonksiyonlardan ibaret bir yol göstereceğim.
İlk yapmamız gerekenler filezilla programı ile ftp bağlanıp www dizindeki .htaccess dosyasını notepad++ yardımı ile açalım.
ben .htaccess temiz olduğunu var sayarak kodlamaya başlamak istiyorum .htaccess yapılandırmasını çok düzgün bir şekilde yapmalıyız ufacık bir hata sitenin kapanmasına yada linklerin döngülerinde sorunlar çıkartabilir.
- Kod: Tümünü seç
Options -Indexes +FollowSymLinks
<IfModule>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*) $1
</IfModule>
açıklamalara girerek kafanızı karıştırmak istemiyorum kafasında ? olanlar google yazıp araştırma yapabilirler. Şimdi üst kısımda seolama betiğini başlatmış bulunmaktayız kodlarımızı seo linklere döndürelim yani başlayalım News modülünü örnmek alırsak
- Kod: Tümünü seç
RewriteRule ^News.html modules.php?name=News [L]
Normal Modüle giden bağlantı yolu: modules.php?name=News
Seo'lu giden bağlantı yolu: news.html
sonuna .html koyduk isterseniz .htm, .php, .js yapabilirsiniz bunlar neyle bittiği önemli değildir sadece neyle kodlandığını belirtir php kodumuzu biz yanıltarak .html ile kodlamış gibi gösteriyoruz.
şimdi biz normalde modüle modules.php?name=News şeklinde bağlantı sağlarken artık news.html ile bağlantıda sağlayabiliriz bunu isterseniz değiştirin haber.html yapın fark etmez.
şimdi news modülünün article yani haber konusunuda seolu bir bağlantı sağlayalım yani
- Kod: Tümünü seç
RewriteRule ^article_([0-9]*)_(.*).html modules.php?name=News&file=article&sid=$1 [L]
burada gördüğünüz gibi haberin başlığını seo yöntemini yapıyorruz yani burada ne oldu
www.siteadi.com/article_id_haberbaşlığı.html şekline cevirmiş olduk burda haberimizi göstermek için ([0-9]*) algoritmayı sadece sayılardan ibaret olduğunuz ve sid=$1 ($1) sayıları çekeceğini belirttik yani burda (sid=$2) yapsaydık (.*) burdaki algoritmayı tetikleyecekti bunları ilerleyen seviyede göreceğiz.
yani kısaca www.siteadi.com/article_id_haberbasligi.html ($1) = ([0-9]*) haber id sini gönderiyoruz $sid = $_GET['sid']; yazıp GET metodu ile gelen haberin id sini çekiyoruz.ve sayfamıza habere ait bilgileri dokuyoruz.
Peki linklere nasıl haberbaşlığı.html kodunu ekleyeceğiz bunu şu şekilde yapacaksınız
- Kod: Tümünü seç
function ob_seola($s) {
$tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç');
$eng = array('s','s','i','i','g','g','u','u','o','o','c','c');
$s = str_replace($tr,$eng,$s);
$s = strtolower($s);
$s = preg_replace('/&.+?;/', '', $s);
$s = preg_replace('/[^%a-z0-9 _-]/', '', $s);
$s = preg_replace('/\s+/', '-', $s);
$s = preg_replace('|-+|', '-', $s);
$s = trim($s, '-');
return $s;
}
bu fonksiyon ile seo uygun link yapıyoruz bunu mainfile.php içine atabilirsiniz istediğiniz her yerde kullanabilmeniz için.
ve şimdi linkleri oluşturmaya geldi ben bloklardan örnek göstereceğim
- Kod: Tümünü seç
<a href="modules.php?name=News&op=NEArticle&sid=$sid">
yerine
<a href="article_$sid_'. ob_seola($baslik).'.html">
şeklinde değiştiriyoruz. Başlangıç seviyesindeki yazılar bu kadardır biraz basit anlatım olabilir derin ayrıntılara girmektense tekrar tekrar okuyup mantığı kavramınızı isterim açıkçası.
Uyguladım çalışmıyor demeyin anlatım yaparken tek tek denendi bu yüzden .htaccess sadece benim yukarıda verdiğim koldarın yazıldığından emin olunuz.
Forumlarda kodlamalar yüzünden bazen sorunlar çıkabiliyor bu yüzden ( ' ) yazılanları ( " ) çevirmenizi tavsiye ediyorum.
Teşekkürler.
Not: Localhost'ta işlem yaptığınızdan dolayı .htaccess çalışmaz çalışmasını istiyorsanız aşağıdaki yöntemi uygulayıp tekrardan deneyiniz.
İlk olarak apache/conf/httpd.conf dosyasını açıp aşağıdaki satırı bulalım.
#LoadModule rewrite_module modules/mod_rewrite.so Ve bu satırdaki #(diez) işaretini kaldıralım.
Daha sonra aynı dosyanın içindeki allowoverride none yazan bütün yerleri allowoverride all olarak değiştiriyoruz. Dosyayı not defteri ile açarsanız Ctrl + H tuş kombinasyonunu kullanarak kolayca değiştirebilirsiniz.
httpd.conf dosyasını bulamazsanız bilgisayarınızda arama yaparak bulunuz. Son olarak apache’i kapatıp tekrar açıyoruz. Eğer çalışmazsa bilgisayara reset attıktan sonra deneyin.