WordPress üstünden site kurmak kolay olsa da içeriklerinizi yönetirken kullanıcı deneyimini olumsuz etkileyen linkleri gözden kaçırabilirsiniz. 404 kodlu hata linkleri, manuel olarak ve WordPress üstünden kolaylıkla bulunabilir. Ek olarak, WordPress’in gönderdiği maillerin takibini gerçekleştirerek sitenizle ilgili varsa sorunları gözden geçirebilirsiniz. Hatalı kodları düzeltmek için WordPress’te en hızlı 301 yönlendirme yollarını sizler için derledim.
-
1
301 Yönlendirmesi Nedir?
- 1.1 Basit 301 Yönlendirmesi
- 1.2 Tüm Sorgu Parametrelerini 301 ile Yönlendirmek
- 1.3 Htaccess HTTPS ve WWW Yönlendirmesi
- 1.4 Htaccess HTTPS Yönlendirmesi
- 1.5 Domain Forwarding (Domain Yönlendirme)
- 1.6 Htaccess AMP Yönlendirmesi
- 1.7 WordPress Htaccess Dosyası
- 1.8 Alt Klasördeki WordPress İçin Htaccess Kodları
- 2 Sık Sorulan Sorular
301 Yönlendirmesi Nedir?
301 kodu http durum kodlarından birisidir. 301 yönlendirmesi ise 301 kodu kullanılarak bir sayfayı eski url’sinden yeni url’sine yönlendirmeye verilen isimdir. Çoğunlukla sayfanın url’si değiştiğinde veya içeriği taşındığında kullanılır. SEO sürecinde önemli bir yeri vardır. Aşağıda örnek 301 yönlendirmelerine kapsamlı örnekler bulabilirsiniz.
Basit 301 Yönlendirmesi
Redirect 301 /eski-sayfanizin-relative-urlsi/ https://www.domainadresiniz.com/yeni-sayfanizin-absolute-urlsi/
Eğer sitenizin bir paneli varsa veya hazır cms/yazılım kullanıyorsanız, panelinizde yönlendirmeler menüsü aracılığıyla kod yazmadan bu işlemi sağlamanız mümkün. WordPress altyapısı için örnek vermek gerekirse, WordPress’te 301 yönlendirmesi, Rank Math SEO, Yoast SEO, All in One SEO ve benzeri SEO eklentileri tarafından kod yazmaya gerek olmadan yapılabilmektedir. Ancak komplike yönlendirmelerde .htaccess dosyasına özel kod yazmak gerekebilir. Komplike yönlendirmelere örnek olarak ihtiyaç duyulan en sık yönlendirmeler için yazdığımız kodları paylaşacağız.
Tüm Sorgu Parametrelerini 301 ile Yönlendirmek
# BEGIN: Redirect non-critical query parameters to the current page with 301 redirect by Onur Özden Web Çözümleri
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !(.*)wp-admin(.*)
RewriteCond %{REQUEST_URI} !(.*)wp-login(.*)
RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|webp|avif|tiff|pdf|mp4|avi|mkv|flv|zip|rar|docx|doc|xlsx|csv|txt|rtf|xml|css|js) [NC]
RewriteCond %{QUERY_STRING} .
RewriteRule ^ %{REQUEST_URI}? [L,R=301]
# END: Redirect non-critical query parameters to the current page with 301 redirect by Onur Özden Web Çözümleri
Tüm sorgu parametrelerini üstteki kodlarla geçerli url’ye geri yönlendirebilirsiniz. Örnek kodda WordPress’ in varsayılan giriş sayfası ve admin sayfası gibi özel sayfaları ve bazı özel dosya türleri hariç tutulmuştur. Hariç tutmalarda ihtiyaca bağlı düzenleme gerçekleştirebilirsiniz.
Htaccess HTTPS ve WWW Yönlendirmesi
Sayfaların ssl olduğu halde https sürümüne yönlendirilmediği için http olarak açılması ve sitede www kullanıldığı halde sayfanın www olmadan aynı versiyonunun yayınlanması sadece teknik sebeplerle değil SEO ve kullanıcı deneyimi açısından da büyük bir sorundur. Bu sorunu çözmek için aşağıdaki kodlarla http url’leri https’ye yönlendirebilir ve sayfanın sadece www ile açılmasını sağlayabilirsiniz.
# BEGIN: Redirect All Urls to WWW with 301 redirect by Onur Özden Web Çözümleri
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1/ [R=301,L]
# END: Redirect All Urls to WWW with 301 redirect by Onur Özden Web Çözümleri
.htaccess dosyası, WP kalıcı bağlantı yapısı ile otomatik olarak oluşturulur. Eğer dosyayı bulamadıysanız ftp veya hosting kontrol panelinden manuel olarak bir tane oluşturabilirsiniz:
- Notepad’i açın. (ya da kullandığınız kod editörünü)
- İlgili kodu yapıştırın.
- Dosya uzantısını text’in kısaltılışı .txt yerine .htaccess yapın ve isim belirlemeyin.
- Oluşturduğunuz dosyayı, sitenizin kök dizinine (bu dizin çoğunlukla public_html veya htdocs olarak adlandırılır) ekleyin.
Bu yöntem ile .htaccess ile HTTPS ve WWW yönlendirmesi gerçekleştirebilirsiniz.
Htaccess HTTPS Yönlendirmesi
Sitenizde www kullanmıyorsanız ve sadece http urlleri https yapmak istiyorsanız sizin için yazdığımız bu kodları sitenizin kök dizinine eklemeniz yeterlidir.
# BEGIN: Redirect All Urls to https and non-www with 301 redirect by Onur Özden Web Çözümleri
# Skip it if the url is correct
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* - [L]
# https and non-www redirect
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L]
# END: Redirect All Urls to https and non-www with 301 redirect by Onur Özden Web Çözümleri
Domain Forwarding (Domain Yönlendirme)
Domain forwarding, Türkçesiyle domain yönlendirme, domaini ve tüm urllerini yeni bir domaine yönlendirmeye verilen isimdir. Aşağıdaki kodla eski domaindeki tüm urlleri yeni domaine yönlendirebilirsiniz. olddomain ile newdomain değerlerini ve domain uzantılarını eski ve yeni domainin ismiyle değiştirmeyi unutmayın.
# BEGIN: Redirect All Old Domain Urls to New Domain Urls with 301 Redirect by Onur Özden Web Çözümleri
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$
RewriteRule ^(.*)$ "https\:\/\/www\.newdomain\.com\/$1" [R=301,L]
# END: Redirect All Old Domain Urls to New Domain Urls with 301 Redirect by Onur Özden Web Çözümleri
Htaccess AMP Yönlendirmesi
Eğer sitenizde bir süre AMP kullandıysanız ve daha sonra kaldırdıysanız arama motorlarında AMP’nin düzenlediği linkleriniz indexlenmiş olabilir. AMP’yi kaldırdıktan sonra bu linkleri tekrar geçerli eski hallerine yönlendirmeniz gerekir. Aksi taktirde arama motoru sonuç sayfasındaki amp sorgu parametresine sahip linkler 404 döndürür ve kullanıcı içeriğe ulaşamaz. Amp’li urlyi amp’siz haline döndürmeye “amp to non-amp redirect” ismi verilir. Bu yönlendirmeyi 301 kodu kullanarak yapmak için aşağıdaki kodları kullanabilirsiniz.
# BEGIN: AMP to NON-AMP Redirect for All Known AMP Variations by Onur Özden Web Çözümleri
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} amp [OR,NC]
RewriteCond %{QUERY_STRING} noamp=mobile [OR,NC]
RewriteCond %{QUERY_STRING} amp=1 [NC]
RewriteRule ^ %{REQUEST_URI}? [L,R=301]
RewriteCond %{REQUEST_URI} (.+)/amp(.*)$ [NC]
RewriteRule ^ %1/ [R=301,L]
# END: AMP to NON-AMP Redirect for All Known AMP Variations by Onur Özden Web Çözümleri
WordPress Htaccess Dosyası
WordPress’te htaccess dosyanız bozulduysa ve WordPress sisteminin eklediği varsayılan kodlar kaybolduysa Ayarlar > Kalıcı Bağlantılar > Kaydet tıklayarak htaccess kodların tekrar eklenmesini sağlayabilirsiniz. Eğer admin panelinize erişiminiz yoksa, sitenizin kök dizinindeki .htaccess dosyasını açıp aşağıdaki kodları girebilirsiniz. Bu kodlar sadece alt domain ve domainde ana dizinde kurulu wordpress siteler için geçerlidir. Siteniz alt klasörde kuruluysa bir sonraki başlıktaki kodları kullanmalısınız.
# BEGIN WordPress
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Alt Klasördeki WordPress İçin Htaccess Kodları
WordPress’te htaccess dosyanız bozulduysa ve siteniz ana dizin ya da alt domain yerine alt klasörde kuruluysa aşağıdaki kodları sitenin kök dizinindeki .htaccess dosyasına ekleyerek kullanabilirsiniz. Kodlarda “subfolder” kısmını WordPress’i kurduğunuz alt klasörün adıyla, “example.com” kısmını ise domaininiz ile değiştirmeyi unutmayın.
# BEGIN WordPress
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
# END WordPress
Sizin için hazırladığımız en yaygın durumlar için oluşturulmuş yönlendirme kodlarını .htaccess dosyanızda kullanarak yönlendirme işleminizi en iyi yöntemlerle (best practice) gerçekleştirebilirsiniz.
Sık Sorulan Sorular
WordPress 301 yönlendirmesi, sitenizdeki urlsi değişen, artık kullanılmayan veya taşınan sayfaları bir diğer alakalı sayfaya yönlendirmeye verilen isimdir. 301 yönlendirmesindeki ismini http durum kodu olan 301 kodundan almıştır.
301 .htaccess yönlendirmesi 301 yönlendirmesini .htaccess dosyasına yönlendirme kodlarını yazarak yapmaya verilen işlemdir. Htaccess dosyası kullanıldığı için “htaccess 301 redirect” adını almıştır.