• 28-06-2008, 17:24:26
    #1
    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.
  • 28-06-2008, 19:04:44
    #2
    RewriteRule ^(.*)/(.*)*(/)* profil.php?user=$1&deg=$2 [L,NC]
    bu iş görür. (farklı regexp alternatifleri olabilir)
  • 29-06-2008, 15:14:08
    #3
    soruyu değiştirdim.
  • 30-06-2008, 01:00:24
    #4
    bence 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:39
    #5
    SrcnCkr adlı üyeden alıntı: mesajı görüntüle
    bence 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.
    gü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.
  • 01-07-2008, 02:33:43
    #6
    ben 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:05:40
    #7
    +rep vereyimde 14 rep puanı birden al
    Sağol bu arada. Banada yaradı
  • 01-07-2008, 04:28:21
    #8
    eyvallah, 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:18
    #9
    SrcnCkr adlı üyeden alıntı: mesajı görüntüle
    eyvallah, 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.)
    hem localde hemde server da denedim yine $1 profil.php olarak gözüküyor