• 12-03-2021, 00:53:12
    #1
    Merhabalar iyi forumlar .htaccess hakkında bir sorum var.

    admin panelden dinamik olarak sayfalar oluşturuyorum.

    RewriteRule ^([^/]*)$ /pages/detail.php?pages_url=$1 [L] htaccess bu şekilde ayarladığım zaman /iletisim tarzında sayfa geliyor fakat,
    ana dizinde olan /hakkimizda veya /index gibi php ile oluşturduğum yani panelden eklemediğim sayfalar veritabanında olmadığı için sayfayı göstermiyor.

    htaccess den RewriteRule ^([^/]*)$ /pages/detail.php?pages_url=$1 [L] bunu kaldırdığımda gösteriyor. bu sorunu nasıl çözerim
  • Kabul Edilen Cevap
    • 0 Beğeni
      kurallarınızı incelediğimde
      RewriteRule ^(.*)$ $1.php
      kısmı gözüme çarptı. bunun anlamı link ne gelirse gelsin, o php dosyasını çağırmaya programlanmış durumda.
      çağırdığınız link geçerli bir dosyaya konumlanıyor mu ? (dosya olarak gerçekten mevcut mu)
      buradaki kural şu şekilde çalışır.
      example.com/anasayfa -> anasayfa.php
      example.com/hakkimizda ->hakkimizda.php
  • 12-03-2021, 01:01:00
    #2
    RewriteRule satırından önce;
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    satırlarını ekleyerek, var olan dosya veya klasörlerin kural dışı kalmasını engelleyebilirsiniz
  • 12-03-2021, 01:19:54
    #3
    SeMoLi adlı üyeden alıntı: mesajı görüntüle
    RewriteRule satırından önce;
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    satırlarını ekleyerek, var olan dosya veya klasörlerin kural dışı kalmasını engelleyebilirsiniz
    RewriteEngine On
    DirectoryIndex index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ $1.php
    RewriteRule ^([a-z]+)/?$ $1.php [NC]
    RewriteRule ^app$ app/index.php [L,QSA]
    RewriteRule ^([^/]*)$ /pages/detail.php?pages_url=$1 [L]


    bu şekilde güncelledim ama yine aynı hocam
  • 12-03-2021, 01:25:53
    #4
    sibercode adlı üyeden alıntı: mesajı görüntüle
    RewriteEngine On
    DirectoryIndex index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ $1.php
    RewriteRule ^([a-z]+)/?$ $1.php [NC]
    RewriteRule ^app$ app/index.php [L,QSA]
    RewriteRule ^([^/]*)$ /pages/detail.php?pages_url=$1 [L]


    bu şekilde güncelledim ama yine aynı hocam
    RewriteCond sadece 1 altındaki RewriteRule satırına etki eder. altındaki kaç etki etmesini istiyorsanız [S=...] 3 noktanın olduğu yere satır sayısını girmelisiniz. gördüğüm dosyada 4 kural olduğu için [S=4] yazdım
    RewriteEngine On
    DirectoryIndex index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule  .?  -  [S=4] 
    RewriteRule ^(.*)$ $1.php
    RewriteRule ^([a-z]+)/?$ $1.php [NC]
    RewriteRule ^app$ app/index.php [L,QSA]
    RewriteRule ^([^/]*)$ /pages/detail.php?pages_url=$1 [L]
    Kaynak: https://stackoverflow.com/questions/...52074#13952074
  • 12-03-2021, 01:30:40
    #5
    SeMoLi adlı üyeden alıntı: mesajı görüntüle
    RewriteCond sadece 1 altındaki RewriteRule satırına etki eder. altındaki kaç etki etmesini istiyorsanız [S=...] 3 noktanın olduğu yere satır sayısını girmelisiniz. gördüğüm dosyada 4 kural olduğu için [S=4] yazdım
    RewriteEngine On
    DirectoryIndex index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule  .?  -  [S=4]
    RewriteRule ^(.*)$ $1.php
    RewriteRule ^([a-z]+)/?$ $1.php [NC]
    RewriteRule ^app$ app/index.php [L,QSA]
    RewriteRule ^([^/]*)$ /pages/detail.php?pages_url=$1 [L]
    Kaynak: https://stackoverflow.com/questions/...52074#13952074

    sayfa ful 404 verdi :/ hiç bir sayfa çalışmıyor
  • 12-03-2021, 01:36:54
    #6
    Bu cevap, konu sahibi tarafından kabul edilebilir bir cevap olarak işaretlendi.
    kurallarınızı incelediğimde
    RewriteRule ^(.*)$ $1.php
    kısmı gözüme çarptı. bunun anlamı link ne gelirse gelsin, o php dosyasını çağırmaya programlanmış durumda.
    çağırdığınız link geçerli bir dosyaya konumlanıyor mu ? (dosya olarak gerçekten mevcut mu)
    buradaki kural şu şekilde çalışır.
    example.com/anasayfa -> anasayfa.php
    example.com/hakkimizda ->hakkimizda.php
  • 12-03-2021, 01:41:47
    #7
    SeMoLi adlı üyeden alıntı: mesajı görüntüle
    kurallarınızı incelediğimde
    RewriteRule ^(.*)$ $1.php
    kısmı gözüme çarptı. bunun anlamı link ne gelirse gelsin, o php dosyasını çağırmaya programlanmış durumda.
    çağırdığınız link geçerli bir dosyaya konumlanıyor mu ? (dosya olarak gerçekten mevcut mu)
    buradaki kural şu şekilde çalışır.
    example.com/anasayfa -> anasayfa.php
    example.com/hakkimizda ->hakkimizda.php
    Evet RewriteRule ^(.*)$ $1.php bu kuralı kaldırdığımda sorun çözüldü. dosyaların .php uzantısı kaldırmak için o kuralı kullanıyordum.

    şimdi o kuralı kaldırınca hakkimizda.php olarak çıkıyor .php uzantısını nasıl kıldırıcağım hocam
  • 12-03-2021, 01:47:26
    #8
    eğer statik sayfalar çok yok ise tek tek ekleyerek
    RewriteRule ^hakkimizda$ hakkimizda.php
    isterseniz de fiziksel olarak var olan php dosyalarına erişebilmesi için kondisyon ekleyerek bu işlemi yapabilirsiniz.
    Eğer bunu yapıyorsanız kuralların çakışmaması adına en alta veya kuralın en üst kısmına ekleyin.
    RewriteCond %{REQUEST_FILENAME}.php -f 
    RewriteRule ^(.*)$ $1.php
  • 12-03-2021, 01:50:28
    #9
    @SeMoLi; oldu hocam çok teşekkür ederim.