Htaccess kullanımı ve 301 Yönlendirme Kuralları (Php, WordPress)
Bir web siteniz var ve memnun olduğunuz halde farklı bir dizine, alt dizine, alt domaine veya farklı bir URL adresine taşımak mı istiyorsunuz?
Aynı zamanda taşıma işlemi ve sonrasında sitenize gelen hitlerin kaybolmaması, URL adreslerinin 404 hatasına dönüşmeden yeni taşındığınız adrese sorunsuzca yönlendirilmesini mi istiyorsunuz? Kalıcı bir işlem olarak bu yönlendirme hareketine 301 Yeniden Yönlendirme aktivitesiyle kolayca uygulayabilirsiniz.
Htaccess dosyası nedir? Htaccess ne işe yarar?
Server ve hosting kurulumları sonrasında WordPress, Joompla ve Drupal gibi CMS sistemleri ile çalışıyorsanız, mutlaka bu dosyanın varlığına ve elzem işlevselliğine tanık olmuş olmalısınız.
Htaccess dosyası veya diğer ismiyle HyperText Access dosyası, yapı içerisindeki dizin kontrollerinin yapıldığı, elzem bir sunucu yönlendirme işlevi üstlenmektedir. Apache server kurulumları sonrasında sunucunuzun dosya düzenini işlevsel hale getirmek için htaccess düzenlemenizin, istediğiniz yapıda olması zorunludur.
301 Redirection olarak web üerinde milyon tane alternatif yazıya denk gelebileceğiniz kalıcı yönlendirme işlevi olan 301 Yeniden Yönlendirme işlemi, htaccess dosyasına ekleyeceğınız basit ancak hayati kodlamalar ile gerçekleşmektedir.
Sık Kullanılan Htaccess 301 Yönlendirme Kuralları Nelerdir?
Htaccess ve 301 Yönlendirme ile Tek bir sayfa yönlendirmek isterseniz
Redirect 301 /pagename.php http://www.domain.com/pagename.html
Htaccess ve 301 Yönlendirme ile bir domain veya ana adresi tamamiyle yenisine yönlendirme
Redirect 301 / http://www.domain.com/
Htaccess ve 301 Yönlendirme ile alt dizindeki bir siteyi başka ana adrese yönlendirme
Redirect 301 /subfolder http://www.domain.com/
Htaccess ve 301 Yönlendirme ile dosya ismi değişmeden aynı adresi farklı dosya formatına yönlendirme
RedirectMatch 301 (.*).html$ http://www.domain.com$1.php
Htaccess ve 301 Yönlendirme ile yeniden yazma yöntemiyle eski adresi yenisine yönlendirme
RewriteEngine on
RewriteBase /
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Htaccess ve 301 Yönlendirme ile www olmayan siteyi www versiyonuna yönlendirme
RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]
Htaccess ve 301 Yönlendirme ile www olmayan bir siteyi ww ve alt dizinli yeni adrese yönlendirme
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/directory/index.html [R=301,NC]
Htaccess ve 302 Yönlendirme ile bir domain veya ana adresi tamamiyle ve aynı link yapısını bozmadan yönlendirme
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*) http://www.newdomain.com%{REQUEST_URI} [R=302,NC]
Htaccess ve 302 Yönlendirme ile bir alt dizinde bulunan siteyi tamamiyle ve aynı link yapısını bozmadan bir alt dizinsiz yönlendirme
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/subdirname/(.*)$
RewriteRule ^(.*) http://www.newdomain.com/%1 [R=302,NC]
Htaccess ve 301 Yönlendirme ile bir dizinde bulunan siteyi query uzantılarıyla birlikte yeni bir dizine taşıma
RewriteEngine on
RewriteCond %{QUERY_STRING} id=3
RewriteRule ^index.php$ /path-to-new-location/? [L,R=301]
Htaccess ve 301 Yönlendirme ile HTTP siteyi duplikasyon olmadan HTTPS versiyonuna çevirme
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Htaccess ve 301 Yönlendirme ile HTTPS yönlendirmesini yaparken HTTP’den de kurtarmak isterseniz
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
Htaccess ve 301 Yönlendirme ile index.php veya index.html yapılarından kurtarıp ana adrese yönlendirme
RewriteEngine On
RewriteCond %{THE_REQUEST} /index.php HTTP [NC]
RewriteRule (.*)index.php$ /$1 [R=301,L]
veya
RewriteEngine On
RewriteCond %{THE_REQUEST} /index.html HTTP [NC]
RewriteRule (.*)index.html$ /$1 [R=301,L]
Htaccess ve 301 Yönlendirme ile index sorgusundan kurtarıp direk adres olarak yönlendirmek
Örnek: https://www.margarit.com.tr/index.php?id=100 adresinden https://www.margarit.com.tr/100/ adresine direk yönlendirme
RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [QSA]
Htaccess ve 301 Yönlendirme ile index sorgusundan kurtarıp alt dizin tanımlamasıyla direk adres olarak yönlendirmek
Örnek: https://www.margarit.com.tr/index.php?kategori=kediler adresinden https://www.margarit.com.tr/kategori/kediler adresine direk yönlendirme
RewriteEngine On
RewriteRule ^/?kategory/([^/d]+)/?$ index.php?kategory=$1 [L,QSA]
Htaccess ve 301 Yönlendirme ile URL yapısını bozmadan bir siteyi tamamen yenisine birebir taşımak
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example-old.com$ [NC]
RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]
If you do not want to pass the path to the new domain, change the last line to:
RewriteRule ^(.*)$ http://www.example-new.com/ [R=301,L]
Htaccess ve 301 Yönlendirme ile sub domain adresinden alt dizine yönlendirme
Örnek: blog.margarit.com.tr adresinden https://www.margarit.com.tr/blog/ adresine direk yönlendirme
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI}/ blog
RewriteRule ^(.*) http://www.orneksiteadi.com/%{REQUEST_URI} [R=302,NC]
RewriteRule ^(.*) http://www.orneksiteadi.com/blog/%{REQUEST_URI} [R=302,NC]
Htaccess ve 301 Yönlendirme kuralları ile bir alt dizini başka bir alt dizine yönlendirme
Options +FollowSymLinks RewriteEngine On RewriteRule ^(.*)/old-directory/(.*)$ $1/new-directory/$2 [R,L]
Bir domainde yer alan sistemi tamamen bir alt dizine taşımak istiyorsunuz ve gelen hitlerin direk alt dizindeki url’ye yönelmesini istiyorsanız
<IfModule mod_expires.c>
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^margarit.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.margarit.com$
RewriteRule ^(.*)$ "https://www.margarit.com/forum/$1" [R=301,L]
<IfModule>