WordPress’te 301 Yönlendirmesi Nasıl Yapılır ?

Bugün farkettim ki, halen 301 yönlendirmesi konusunda Türkçe kaynak anlamında eksiklikler var. Bende bunun üzerine bir şeyler yazayım dedim.

Wordpress'te 301 yönlendirmesi herkesin bildiği gibi .htaccess ile yapılır. Ama nasıl ? Birkaç çeşidi mevcut..

Bunlardan birincisi, farklı bir domainden farklı bir domaine geçiş esnasında yapılan yönlendirmeler. Alt içeriklerinizle beraber yeni domaine 301 yönlendirmesi yapmak için aşağıdaki kodları .htaccess dosyasına yerleştirebilirsiniz.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^eskidomain.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.eskidomain.com [NC]
RewriteRule ^(.*)$ http://www.yenidomain.com/$1 [L,R=301,NC]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Bir linki aynı domain üzerinde başka bir linke yönlendirmek için,

Redirect 301 /eski-link.html /yeni-link.html

Bir linki farklı domainde farklı bir linkle yönlendirmek için,

Redirect 301 /eski-link.html http://www.yenidomain.com/yeni-link.html

Domaini www yönlendirmesine zorlamak için,

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^siteadi.com [NC]
RewriteRule ^(.*)$ http://www.siteadi.com/$1 [L,R=301,NC]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Domaini www versiyonsuz yönlendirmek için,

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.siteadi.com [NC]
RewriteRule ^(.*)$ http://siteadi.com/$1 [L,R=301,NC]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Tüm uzantıları değiştirmek için, örnek olarak .php uzantılı linkleri .html uzantılı linklere 301 yönlendirmesini yapabilirsiniz.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} .php$
RewriteRule ^(.*).php$ /$1.html [R=301,L]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

/%year%/%monthnum%/%day%/%postname%/ permalink yapısına sahip olan linklerinizi /%postname%/ permalink yapısına yönlendirmek için,

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/?$ http://www.siteadi.com/$4/ [R=301,L]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

/%year%/%monthnum%/%postname%/ permalink yapısına sahip olan linklerinizi /%postname%/ permalink yapısına yönlendirmek için,

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/?$ http://www.siteadi.com/$3/ [R=301,L]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

/%year%/%postname%/ permalink yapısına sahip olan linklerinizi /%postname%/ permalink yapısına yönlendirmek için,

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]{4})/([^/]+)/?$ http://www.siteadi.com/$2/ [R=301,L]
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Bu yazı 10 Temmuz 2016 tarihinde güncellendi

Eğer Google'da aşağıda görseldeki gibi wordpress etiketleriniz index almış ve google indexlerinizde bir kayıp yaşamadan "tag" e  ya da başka bir şeye yönlendirme yapmak isterseniz, aşağıdaki kodu .htaccess dosyasına ekleyip kendinize göre düzenleyebilirsiniz.

wordpress-etiketlerin-301-yonlendirmesi-nasil-yapilir-02

RewriteBase /

satırından sonra

RewriteRule ^etiket/(.*) /e/$1 [L,R=301]

Bir önceki yazım olan WordPress'te SSL Htaccess Kodu başlıklı makalemde wordpress ssl ve wordpress ssl htaccess kodu hakkında bilgiler verilmektedir.

4 Yorum

  • Titaest
    22 Eyl 2016

    kaliteli bilgiler. Bir sorum olacak
    site/yil/ay/gun/postname/ olan linki site/category/postname olarak 301 yönlendirmesi nasıl yapabilirim
    (Sizce disqus yorum sisteminin avantajı nedir)

  • Yalçın
    15 Oca 2017

    Merhaba,

    Bilgi için teşekkürler, benim asıl sorunum şu ;

    yıl/ay/gün/başlık/ olan bağlantı yapısını başlık-id.html yapmak istiyorum. bunu wordpress kalıcı bağlantılardan yapabiliyorum ancak 301 yönlendirmesi için htacchess dosyasında nasıl bir değişiklik yapmalıyım ?

    • 15 Oca 2017

      Merhaba,

      O konuda bilgim yok malesef, üzerinde çalışarak çözüm üretmek lazım.

      • Yalçın
        15 Oca 2017

        Teşekkürler, permalink finder eklentisi kullanmak durumunda kaldım umarım google üzerinde etkisi kötü olmaz.

Konuya Yorumunuzu Bekliyorum