RewriteRule ^(.*)$ profil.php?user=$1 [L,NC]Sorumu değiştiyorum www.xxx.com/ahmet yazdığı zaman $1 değişkenin ahmet olmasını istiyorum ama yukardaki kod çalıştığında $1 değşkeni profil.php değerini alıyor. sonuç olarak www.xxx.com/ahmet nasıl çalıştırabilirim.
.htaccess ilgili klasör sorunu
8
●628
- 30-06-2008, 01:00:24bence o kullanım doğru, url'den eğer /ahmet geliyorsa $1 ahmet olacaktır. başka bir yerde hata yapıyor olabilirsiniz. Bu arda .* olarak çağırmakla risk aldığınızı belirtmek isterim. regexp'yi kullanacağınız karakterlerle sınırlamananız güvenliğiniz açısından daha yararlı olacaktır.
- 30-06-2008, 02:07:39güvenlik olayı şuan için çok öenmli değil ama yukarıda dediğim gibi yanlış değer veriyor değişken acaba birşey mi eksik orda.SrcnCkr adlı üyeden alıntı: mesajı görüntüle
- 01-07-2008, 02:33:43ben herhangi bir sorun göremedim;
http://localhost/ahmet diye girildiğinde ve aşağıdaki kod .htaccess'te mevcut ise;
RewriteRule ^(.*)$ profil.php?user=$1 [L,NC]
profil.php sayfasında;
<?php echo $_GET['user']; ?>yazdıldığında ekrana ahmet yazar. (yazması lazım) Ama eğer çağırdığınız ifadede bir klasör var ise o zaman o klasörün içeriğine müdahale etmek isteyebilir. mesela örneğimize göre root dizinde ahmet adında klasör var ise rewrite direkt o klasöre yönlenir. - 01-07-2008, 04:28:21eyvallah, yardımım dokunduysa ne mutlu.
Ama tekrar ediyorum, (.*) kullanmak son derece güvensizdir, bunu kısıtlamak gerekir. ([_a-zA-Z0-9-]+) yeterince iş görür özel karakterler içeren bilgiyi almaz ve sayfanız daha güvenli olur (yinede tedbirli olup gelen veriyi kontrol etmek gerek, gelecekte htaccess'teki değişiklikler için sayfayı tekrardan gözden geçirmenize gerek kalmaz.) - 01-07-2008, 17:33:18hem localde hemde server da denedim yine $1 profil.php olarak gözüküyorSrcnCkr adlı üyeden alıntı: mesajı görüntüle
