Wordpress Siteyi Farklı Domain'e Taşıma ve 301 Yönlendirme

Wordpress Siteyi Farklı Domain'e Taşıma ve 301 Yönlendirme
Web siteleriyle uğraşan herkesin başına en az birkez de olsa siteyi farklı bir domain'e (alan adına) taşımak zorunda kalmak gibi bir durum gelmiştir diye düşünüyorum. Bu sıkıntılı olayı ben WordPress sitemde yaşadım. Alan adı yönlendirmesi ve site 301 yönlendirmesini nasıl yaptığımı, htaccess 301 yönlendirme dosyası oluşturmayı, 301 kodları ve başka neler yaptığımı adım adım paylaşayım da ihtiyacı olan sıkıntı çekmeden işini görsün istedim.


Tabi domain taşımanın yanında birde eski sitenin sahip olduğu index sayısı ve google üzerindeki itibarını yeni siteye aktarabilmek söz konusu. İşte bu noktada da karşımıza 301 Yönlendirmesi yapma ihtiyacı çıkıyor. WordPress sitem Natro CPanel üzerinde kuruluydu. Bu yüzden işlemlerin bir bölümü bu hosting firması üzerinden gidecek ama CPanel heryerde aynı olduğu için anlama problemi yaşamayacağınızı umuyorum.

Site-Domain taşıma işine başlamadan önce izlenecek yolu isterseniz işlem sırasına koyalım.

  1. Natro CPanel üzerinde WordPress Site Yedeğini alma
  2. Natro CPanel üzerinde WordPress Site Yedeğini geri yükleme
  3. MySQL Veri Tabanına Kullanıcı Tanımlama ve Birleştirme İşlemleri
  4. MySQL Veri Tabanı üzerinde yapılması gereken Sorgu İşlemleri
  5. 301 Yönlendirme için ".Htaccess" dosyası oluşturma ve Yönlendirme Kodları
  6. Web Yöneticisi Araçları üzerinde Adres Değişikliği yapma

Eveeet, hadi işe koyulalım artık...

Natro CPanel üzerinde WordPress Site Yedeğini alma

Natro'ya giriş yapıp Müşteri Paneline basalım. Soldaki menüden "Hosting Yönetimi" ne basıyoruz. Açılan "Hosting Yönetimi - Aktif Hesaplar" ekranında yedeğini alacağımız sitenin bulunduğu hostingi seçip "Detaylar" a tıklayalım. Gelen ekranda "Kontrol Paneli" ne basacağız. Buraya basınca CPanel yeni sayfada açılır. CPanel'de yedeğini alacağımız site üzerindeki "Yönet" butonuna basalım. Burada "cPanel'e Bağlan" a tıklıyoruz ve böylece yedeğini alacağımız sitenin CPanel'ine girmiş olduk.

Şimdi "Dosyalar" bölümü "Yedekleme" ye basalım. Açılan ekranda "Tam Yedekleme" ve Kısmi Yedeklemeler" diye iki farklı yedekleme seçeneği çıkıyor. Biz bunlardan "Kısmi Yedekleme" yi seçeceğiz. Neden Tam Yedeklemeyi kullanmıyoruz diye soracak olursanız; Bu seçeneği genelde sunucu çalıştıranlar kullanıyor, biz ise hosting kullanıcısı olarak işlem yapıyoruz. Kısmi Yedeklemeler de "Bir Giriş Dizini Yedeği İndir" ve "Bir MySQL Veritabanı Yedeği İndir" seçenekleri var. Giriş dizini sitenin dosya ve resimlerinin bulunduğu bölümdür, bu yüzden boyut olarak yüksektir. Şimdi bu yedekleri aşağıdaki resimdeki gibi sırasıyla indirelim.


İndirilen Dizin dosyası bazen aşağıdaki örnekte olduğu gibi çok büyük olabiliyor bu yüzden indirmek ve geri yüklemek çok zaman alıyor. Eğer sizinde böyle bir sıkıntınız varsa bu dosyaların taşınmasını Natro'dan rica edebilirsiniz. Kesin yaparlar diyemiyorum çünki veri taşıma işi yapmıyorlar ama müşteri memnuniyeti adına bazen yardımcı oldukları da oluyor.



Natro CPanel üzerinde WordPress Site Yedeğini geri yükleme

Şimdi tekrar tüm sitelerin bulunduğu ana CPanel'e gelelim ve yedeklerin taşınacağı yeni Domain'in yukarıda anattığım şekilde CPanel'ine giriş yapalım. Eğer siteniz ana panelde kayıtlı değilse bu domain için henüz yeni site kurma işlemini yapmamışsınız demektir. Yeni site kurma işlemi yaparken "CPanel" li kurulum yapmayı unutmayın. Ayrıca herhangi bir program da kurmayacaksınız. Zaten yedeğimizde gerekli olan herşey mevcut. Bu bölümü daha detaylı anlatmayacağım çünkü birkaç tıkla ve kurcalayarak kolayca çözebilirsiniz diye düşünüyorum.

Neyse, konumuza geri dönelim. Yine "Dosyalar" ve "Yedekleme" ye basıyoruz. Burada sağ en altta "Bir Giriş Dizini Yedeklemesini Geri Yükle" ve "Bir MySQL Veritabanı Yedeklemesini Geri Yükle" diye iki seçenek var. Burada önce dizini sonra da veri tabanını "Dosya Seç" ten seçip "Yükle" ye basıyoruz. İşlemler bittiğinde bize yeni bir sayfada rapor olarak sunulur. Daha öncede belirttiğim üzere dizin dosyası  büyükse geri yükle işlemi çok uzun sürebiliyor. Bu yüzden endişeye kapılmadan sabırla bekleyin.


MySQL Veri Tabanına Kullanıcı Tanımlama ve Birleştirme İşlemleri

Yeni Domain'in yani sitenin CPanel Ana sayfasına gelelim. Burada "MySQL Veri Tabanları" nı tıklıyoruz.


Açılan ekranın en altına gelelim. Aşağıdaki resimde de görülen bölümü kullanarak veri tabanına yeni kullanıcı eklememiz lazım. Burada "Kullanıcı Adı" yazan yere sitenizi hatırlatacak bir kelime veya benim gibi bir ek yazabilirsiniz.



Şimdi ise sıra veri tabanı ile kullanıcıyı birleştirmeye geldi. Burada "Ekle" ye basıyoruz. Açılan ekranda "TÜM AYRICALIKLAR" ı işaretleyip "Değişiklikleri Uygula" ya basalım. Birleştirme işlemini de bölyece tamamlıyoruz.



MySQL Veri Tabanı üzerinde yapılması gereken Sorgu İşlemleri

Şimdi sıra MySQL'de gerekli sorguları çekerek veri tabındaki eski domain adını yeni domain adıyla değiştirmeye geldi. 3 tane sorgumuz var. Bunları eksik yaparsak ya WP-Panel'e giriş yapamazsınız yada site açılsa bile sadece ana sayfanızın linki çalışır. Diğer sayfalarda "404" hatası alırsınız.

Şimdi yeni domain'in CPanel Ana Sayfasına tekrar gelelim. Burada "Veri Tabanları" içerisindeki "phpMyAdmin" kutucuğuna basıyoruz. Veri tabanımız yeni bir sayfada açılacaktır. Burada aşağıdaki resimde gösterilen yerlere numara sırasına göre basıyoruz. Daha sonra ise 3 numaralı bölüme sorgu kodlarını yazıp sağ alttaki "Git" e basalım. 


Sorgu Kodları:

UPDATE wp_posts SET guid = replace(guid, 'http://eskisite.com','http://yenisite.com');

UPDATE wp_posts SET post_content = replace(post_content, 'http://eskisite.com', 'http://yenisite.com');

UPDATE wp_options SET option_value = replace(option_value, 'http://eskisite.com','http://yenisite.com') WHERE option_name = 'home' OR option_name = 'siteurl';

Sorgu Kodlarını kopyalayıp ekrana yapıştırdınız ve "Git" e bastınız ama hata ile karşılaştınız diyelim. İşte bu hatanın sebebi yukarıda kırmızıyla gösterdiğim kesme işaretleri. Kesme işaretleri kopyala/yapıştır da şekil değiştirebiliyor. Hata almanız halinde bunları silip tekrar elle yazarsanız problem çözülecektir.


Wp-Config Dosyasını Düzenleme:

Yukarıdaki işlemleri yaptıktan sonra sitenin çalışabilmesi için Kullanıcı adı ve Şifrenin wp-config.php dosyasına işlenmesi gerekiyor. Bunun için önce dosyamızı bilgisayarımıza indirmeliyiz. Wp-config.php'i "publc_html" klasörünün içinde bulabilirsiniz. İndirme işlemini ister CPanel'deki Dosya Yöneticisinden isterseniz de FileZilla gibi bir programla yapabilirsiniz.

İndirme işleminden sonra wp-config.php dosyasını açmamız ve düzenlememiz gerekiyor. Bu işlemi Notepad++ programı ile yapabilirsiniz. Bu ücretsiz program birçok konuda büyük işler başarabiliyor. Programı indirip kurduktan sonra wp-config.php dosyasını Notepad++ ile açalım. Buradaki bilgileri aşağıda gösterildiği gibi değiştirelim.

/** The name of the database for WordPress */
define('DB_NAME', 'yeni-veri-tabanı-adi');
(Kırmızı ile belirtilen yere yeni oluşturduğumuz veritabanının adını yazıyoruz)

/** MySQL database username */
define('DB_USER', 'veritabanı-kullanıcı-adı');
(Kırmızı ile belirtilen yere yeni oluşturduğumuz veritabanı kullanıcı adını yazıyoruz) 

/** MySQL database password */
define('DB_PASSWORD', 'veritabanı-kullanıcı-şifresi');
(Kırmızı ile belirtilen yere yeni oluşturduğumuz veritabanı kullanıcı şifresini yazıyoruz)

Siteniz eğer local host'ta çalışıyorsa (hosting kullanıyorsanız) aşağıdaki kodda bir değişiklik yapmanıza gerek yok. Farklı host'ta çalışıyorsa kırmızı ile belirtilen yere yeni host IP'nizi girmeniz gerekir.

/** MySQL hostname */ define('DB_HOST', 'localhost');

Site taşıma işlemleri burada bitti. Şimdi sıra eski sitemizi yeni adresimize yönlendirmeye geldi.

301 Yönlendirme için ".htaccess" dosyası oluşturma ve Yönlendirme Kodları

".htaccess" dosyası ve içerisindeki 301 yönlendirme kodları eski sitemize gelen trafiğin ve sitenin google itibarının herhangi bir kayba uğramadan yeni sitemize yani domain'imize yönlendirilmesi için kullanılır. Eski siteye girmeye çalışan birisi bu dosya sayesinde artık yeni domain'e yönlendirilecektir.

Bunun için bir tane boş "Yeni Metin Belgesi" açın. İçerisine aşağıdaki kodları yapıştırın ve resimde gösterdiğimiz şekilde "Farklı Kaydet" yapın. Kayıt Türünü "Tüm Dosyalar" seçmeyi unutmayın. Dosya adı da ".htaccess" olacak ve ardından kaydedin. Artık ".htaccess" dosyamız da hazır!

Dosyayı FTP'den eski sitenin "public_html" dosyası içerisine atın. FTP için FileZilla programını kullanabilirsiniz. Böylece yönlendirme de tamam!!



.htaccess Yönlendirme Kodları:

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^www.eski-site-adı.com [nc]
rewriterule ^(.*)$ http://www.yeni-site-adi.com/$1 [r=301,nc]


Eski ve yeni site adlarını yazarken site adlarının önünde "www" olup olmadığını inceleyin. Eski yapı neyse ona göre yazmalısınız.

Web Yöneticisi Araçları üzerinde Adres Değişikliği yapma

Yeni (domain) sitenizin web yöneticisi araçlarına kayıt edildiğini düşünerek anlatacağım. Eski sitenizin yönetici araçları sayfasına gidin. Burada sağ üstteki simgeye tıklayıp "Adres Değişikliği" ne basın.


Daha sonra aşağıdaki resimde gördüğünüz gibi ilk önce yönlendirme yapacağımız yeni sitenin adresini seçiyoruz ve daha sonra "Denetle" ve "Onayla" işlemlerini yapıyoruz. Bütün onayları aldıktan sonra "Gönder" e basarak site index ve itibarını google'dan yeni sitemize yönlendirmesini talep etmiş oluyoruz.



Artık yeni sitenize girip işlem yapabilirsiniz.

Ben bütün bunları yaptıktan sonra ilginç bir problem yaşadım. Sizde yaşadıysanız çözümü buldum, sizlerle de paylaşayım. 

Problem: Site ana sayfası ve admin sayfası açılıyor ama konulara veya sitenin herhangi bir sayfasına/linkine girmeye çalıştığınızda 404 Hatası alıyorsanız okumaya devam edin. :)

Site wordpress paneline girelim. Soldaki menülerden "Kalıcı Bağlantılar" a basalım ve bu sayfayı "Değişiklikleri Kaydet" ten kayıt edelim. Artık sitenizin tüm linkleri çalışıyor.

Artık sitenizin alan adını taşıdık, htaccess dosyası sayesinde 301 yönlendirme kodlarıyla linklerini de taşıdık ve itibarını da talep etik. Bundan sonra yönlendirme işleminin tamamen gerçekleşmesi için Google 6 ay kadar bir süre belirtiyor. Çok fazla linkiniz yoksa bu kadar uzun sürmeyeceğini söyleyebilirim. Bu da ek bilgi olsun. :)

Hayırlı olsun...

9 yorum:

  1. Wp siteyi başka bir domaine taşıma işlemini detaylı anlatımınızdan faydalanarak yaptım. Çok sağolasınız.
    Lakin, tüm sayfalar ve alt linkler çalışmasına rağmen sadece ana sayfa çalışmıyor.(eski domaine gidiyor)
    sizce neden olabilir?
    fikir verebilirseniz memnun olurum.

    YanıtlaSil
    Yanıtlar
    1. Mrb, problem browser'ınızın geçmişinden kaynaklı olabilir. DNS'den olabilir. Benim başıma birkez böyle birşey gelmişti ve problem DNS kaynaklı çıktı. DNS'leri temizleyip Modemi kapat aç yaptıktan sonra düzeldi. Tavsiyem dns leri bir temizleyin. Bununla ilgili makaleleri natro'da da bulabilirsiniz. Ardından siteye cepten veya farklı internete bağlı bir bilgisayardan giriş yapın. Eğer site normal açılıyorsa sıkıtı dns lerin modem hafızasından kalmasından kaynaklıdır. Bu durumda ilk başta yazdıklarımı yaparsınız.

      Sil
    2. teşekkürler, çözüldü.

      Sil
  2. Merhaba, öncelikle böylesine güzel bir anlatım için elinize sağlık. Yazılanları baştan sona okuyup taşımayı gerçekleştirdim. Fakat benim farklı bir sorunum var. ömceki sitem www li idi bu halde web master toola kayıt etmiştim. Daha sonra siteyi wordpress yaptım. Dolayısı ile yeni adresimde www kalktı. Yani http://siteadı.com gibi oldu. Bu son yaptığım site yönlendirmesinde ise http://siteadı.com u http://yenisite.com yönlendirdim. eski siteye tıkladığımda bütün her şeyi ile yeni siteye gidiyor. burada sorun yok. Ancak web master tool eski kayıtlı sitenin yeni adrese yönlendirmesini arıyor. Yani sizin anlatımınızdaki son resimde iki numaralı yerde denetle dediğimide hata veriyor. Bu bir sorun mudur. Google bütün değerleri buna aktarır mı? Yada bu denetleme işini geçmek için nasıl bir çözüm önerirsiniz. Kolaylıklar diler. Tekrar bu harika yazı için teşekkür ederim.

    YanıtlaSil
  3. dns bazen biraz gec alıyor o yuzden kaynaklı olabilir ve tarayıcı gecmişini tüm olarak silinebilir

    YanıtlaSil
  4. hocam merhabalar. Bu konuda bana yardımcı olabilirmisiniz.

    YanıtlaSil
  5. Çok yararlı oldu teşekkür ediyorum.

    YanıtlaSil
  6. UPDATE wp_options SET option_value = replace(option_value, 'http://eskisite.com','http://yenisite.com') WHERE option_name = 'home' OR option_name = 'siteurl';

    burada "home" ve "siteurl" yazan yerleri değiştirecek miyi??

    YanıtlaSil
  7. Hocam Allah razı olsun. Bu konu hakkında en güzel anlatmı Siz yapmışsınız. Çaok faydalandım.

    YanıtlaSil