Doğru Cevap
-
RewriteEngine On
RewriteCond %{HTTP_HOST} ^siteadi.com$ [NC]
RewriteRule ^(.*)$ http://www.siteadi.com/$1 [R=301]
En doğrusu bu şekilde yazmanız.-
Alexander
dediğiniz şekilde yapınca olmadı12 yıl önce yazılmış -
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.12 yıl önce yazılmış -
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 ekledim12 yıl önce yazılmış -
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.12 yıl önce yazılmış -
Alexander
Bilgiler için teşekkür ederim. Sizede iyi çalışmalar.12 yıl önce yazılmış
-
Cevaplar
-
RewriteEngine on Options FollowSymlinks rewritecond %{http_host} ^site_adi.com [nc] rewriterule ^(.*)$ http://www.site_adi.com/$1 [r=301,nc]
-
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 istiyorum12 yıl önce yazılmış
-
-
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Za-z0-9_-]+) /$1 [L]-
Alexander
maalesef denedim ama olmadı12 yıl önce yazılmış -
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.12 yıl önce yazılmış -
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]12 yıl önce yazılmış
-