Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

url yönlendirme

örneğin tarayıcıdan siteadi.com girildiğinde www.siteadi.com adresine yönlendirmek istiyorum. yani kısacası başında www olmadığı zaman yönlendirme yapmak istiyorum. htaccess ile yapmaya çalıştım ama yapamadım.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • sinanilyas adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    7 cevap - 1 soru
    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^siteadi.com$ [NC]
    RewriteRule ^(.*)$ http://www.siteadi.com/$1 [R=301]

    En doğrusu bu şekilde yazmanız.
    • Alexander adlı üyenin fotoğrafı Alexander
      dediğiniz şekilde yapınca olmadı
      10 yıl önce yazılmış
    • sinanilyas adlı üyenin fotoğrafı sinanilyas
      Ben kendi web sitemde bu şekilde kullanıyorum. Sizde neden böyle çalışmadığını anlayabilmek için .htaccess dosyasının tamamını görmek lazım. Ancak tahminimce kuralın sonuna [R=301,L] değil [R=301] yazmış olduğumuz için olabilir.

      Buradaki L son kural (Last Rule) anlamındadır. L olursa, bu kuralı işlettikten sonra, diğer RewriteRule'lara bakılmaz. L olmazsa devam edip aşağıdaki RewriteRule'lar da işletilir.

      Kendi web sitemde devamındaki başka kuralların da işletilmesini istediğim için L koymamıştım. Sizde daha aşağıda başka kurallar varsa, onlar işi bozuyor olabilir. Ama bu tabiki sadece bir tahmin.
      10 yıl önce yazılmış
    • Alexander adlı üyenin fotoğrafı Alexander
      aynen dediğiin gibi yapınca düzeldi ... peki neden bu yöntemin daha doğru olduğunu söylediniz ? siz böyle diyince size güvenerek sizin verdiğiniz kodu ekledim
      10 yıl önce yazılmış
    • sinanilyas adlı üyenin fotoğrafı sinanilyas
      Şöyle izah edeyim.. Regex'te ^ işareti satır başı, $ işareti ise satır sonu anlamı taşır.

      Sizin örnekte; RewriteCond satırında ^siteadi.com$ dediğinizde, (host adresinin) tamamının "siteadi.com" olup olmadığı kontrol edilmiş olur.

      RewriteRule satırındaki ^(.*)$ ise "siteadi.com/"den sonra yazılmış olan kısmın tamamının alınıp en sağdaki $1 yazan yere koyulmasını sağlar.

      Konu ile ilgili bir bilgi daha vereyim, RewriteCond, "bundan sonra göreceğin ilk RewriteRule satırını sadece bu şart doğruysa çalıştır" anlamına gelir.

      İyi çalışmalar.
      10 yıl önce yazılmış
    • Alexander adlı üyenin fotoğrafı Alexander
      Bilgiler için teşekkür ederim. Sizede iyi çalışmalar.
      10 yıl önce yazılmış

Cevaplar

  • siyahbeyaz adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    472 cevap - 20 soru
    RewriteEngine on
    Options FollowSymlinks
    rewritecond %{http_host} ^site_adi.com [nc]
    rewriterule ^(.*)$ http://www.site_adi.com/$1 [r=301,nc]
    
    • Alexander adlı üyenin fotoğrafı Alexander
      örneğin siteadi.com/main şeklinde link girdiğimde www.siteadi.com/index.php?/main şeklinde yönlendirme yapıyor. oysa www.siteadi.com/main şeklinde yönlendirmesini istiyorum
      10 yıl önce yazılmış
  • tapsin adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    147 cevap - 0 soru
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([A-Za-z0-9_-]+) /$1 [L]
    • Alexander adlı üyenin fotoğrafı Alexander
      maalesef denedim ama olmadı
      10 yıl önce yazılmış
    • tapsin adlı üyenin fotoğrafı tapsin
      Tam olarak APACHE mi yoksa IIS mi yoksa başka Web server damı çalışıyorsun o özellikleri de yazarsan Htaccess dosyasın da ne yapman gerektiğini yazabiliriz daha net.
      10 yıl önce yazılmış
    • Alexander adlı üyenin fotoğrafı Alexander
      teşekkür ederim arkadaşlar... Aşağıdaki gibi yapınca oldu.

      RewriteEngine On
      RewriteCond %{HTTP_HOST} ^example.com
      RewriteRule (.*) http://www.example.com/$1 [R=301,L]
      10 yıl önce yazılmış