Doğru Cevap
-
Selam arkadaşım
konuyu biraz uzun alıcam eğer ilk defa bu konu ile ilgilenen arkadaşlar olursa onlarada bir faydası olsun.
benim kullandığım .htacces dosyasının bir örneğini veriyorum sana
ama öncelikle belirtmek isterimki linklerin ww........com/.........html şeklinde olsını .htacces sağlamıyor ht dosyası senin bu şekilde gönderdiğin linklerin php sayfanda nasıl değişkenlere gitmesi gerektiği ve hangi sayfaya gitmesi gerektiği gibi konuları organize ediyor.
bir haberi görüntülemek istediğinde görüntülemeyi yapacak sayfaya mutlaka ayırt edici bir değişken göndermelisin buda genel de id alanı olur normalde linki olşuturuken habergoster.php?id=$id gibi bir kod yazarız bunun yerine htaccess kullanacaksan soyle olmanı haber-$id/$haberadi
burada dikkat etmen gereken konu her linkin tam olması yani "http://www......com/haber-$id/$haberadi" şeklinde olmalı aksi takdirde açılan sayfada tıkladığın link haber-$id/ ın altında arar gideceği yeri; bunun içinde $domain="www........com"; diye bir değişken tanımlayıp linkleri kullanırken "$domain/haber-$id/$haberadi" şeklinde basitçe yapabilirsin.
şimdi gelelim .htaccess doyasına
RewriteEngine On ####### BURASI SATIR SABİT #########
RewriteBase / ####### BURASI SATIR SABİT #########
RewriteCond %{HTTP_HOST} !^www\.DOMAIN\.com$ ####### KENDİ ALAN ADIN #########
RewriteRule ^haber-([0-9-]+)/([A-Za-z0-9-]+)/?$ habergoster.php?islem=hg&haberid=$1 [L]
## yukarıdaki bu satırda ^ işareti bizim alan admızı temsil burada ht diyoruzki bizim alan adımızdan sonra haber- string ifadesinden sonra gelen rakamı al sonra / ifadesinden sonra string veya numeric ne gelirse al sonra bunları habergoster.php dosyasına yönledir ama yönlendirirken benim sabitim olan islem değişkenine hg degerini ata ve haberid değişkenini ilk parantez bloğunun içi olarak yap burada satır sonunda ki $1 ifadesi bu işe yarıyor sırası ile kullandığın her parantez bloğu link yönlendirilirken $1 $2 $3 .... $10 gibi depolanıyor sende bunları kendi değişkenlerine atıyorsun buradak mantık string ifadeleri elle yazmanda ister en başına ister en sonuna elle .html ekle farketmez örnekteki "haber-([0-9-]+)/([A-Za-z0-9-]+)/" parantezler dışında kalan herşey elle eklenmiş string ifadeler yani bir nevi benim linkleme kurallarımı oluşturuyor sen bunu kendine göre düzenleyebilirsin
son olarak senin kategori yapını örneklemek gerekirse
RewriteRule ^([A-Za-z0-9-]+).html?$ kategorigoster.php?kategoriad=$1 [L]
şeklinde ki satır sayfana kategori adını gönderir ama aynı isimli kategorilerin olma ihtimali varsa bir yanında id eklemelisin
bu arada gönderdiğin bütün linkler http protokolune uygun olmalı yani istemeyen karakter denilen karakterler kullanmalısın bunun için aşağıda ki kod işine yarayabilir. Link kategori adını yazdırmadan önce bu işlemlerden geçir
$istenmeyen_karakterler=array('Ç', 'ç', 'Ğ', 'ğ', 'ı', 'İ', 'Ö', 'ö', 'Ş', 'ş', 'Ü', 'ü', ' ', '$', '@', '/', '"', ':', ';', '€', '*', '?', '<', '>', '|', '&'); $yeni_karakterler=array('C', 'c', 'G', 'g', 'i', 'I', 'O', 'o', 'S', 's', 'U', 'u', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'); $yeni_kategori_ad=strtolower(str_replace($istenmeyen_karakterler, $yeni_karakterler, $SENIN_KATEGORI_ADIN));
şu an için aklıma gelenler bunlar umarım faydası olur.
Kolay Gelsin-
sharq
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)-(.*).html index.php&link=$1 [L,NC]
böle yapnca htaccess dosyasını
diye hata alıyorum:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@root.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.2.8 (Win32) PHP/5.2.6 Server at localhost Port 90
böle ypnca almıyorum
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)-(.*).html index.php&link=$1 [L,NC]
</IfModule>
<IfModule mod_rewrite.c>
bunu kullanayımmı kullanmayayımmı?11 yıl önce yazılmış -
sharq
RewriteCond %{HTTP_HOST} !^www\.DOMAIN\.com$ ####### KENDİ ALAN ADIN #########
bide burda DOMAIN yazan yere kendi alan adımımı yazacağım mesela sitem
www.sitem.com olsun orayı
RewriteCond %{HTTP_HOST} !^www\.sitem\.com$ ####### KENDİ ALAN ADIN #########
olarakmı düzenlicem yoksa orası sabitmi ve localde çalışıyosam ne yapacağım yani .com yok localde??11 yıl önce yazılmış -
sharq
:S
bide burda
RewriteRule ^haber-([0-9-]+)/([A-Za-z0-9-]+)/?$.html habergoster.php?id=$1 [L]
bunu yazdım linkolarakda
www.sitem.com/haber-1/haber-basligi.html yaptım ama 404 aldım yani bunun link'i ne olacak11 yıl önce yazılmış -
sharq
bu hatayı halletim ama <IfModule mod_rewrite.c> bunu anlamını da açklarsan ii olr :D11 yıl önce yazılmış -
sharq
RewriteBase / bunu kldırınca çlştı fakat bu seferde css dosyası gitti yani link'i görmüyor
RewriteBase / koyuncada 404hatası veriyor base href="siteadım.com" yazdım bu sefer sadece resimler gldi ama css gine yok :S11 yıl önce yazılmış -
reelmg
apache de bu modul yuklumu diye kontrol eden komut
eğer yükle değilse not (!) operatoru ile kullanılıp farklı bir yonlendirme yapılabiliyor hatasayfam.php gibi bir sayfaya dönebiliyorsun11 yıl önce yazılmış -
reelmg
css i çağırdığın kod tam link olmalı ilk cevapta bahsetmiştim http: diye başlamalı yoksa kendi / ile biten sanal url nin altında arar11 yıl önce yazılmış -
sharq
teşekkür ederim yukardaki cevabın tab bi htaccess makalesi olmuş olası hataları ben tekrar yazarım şuan hata gözükmüyor base href'i css'in atına yazmışım o yüzden okuyamamış css'i11 yıl önce yazılmış
-
Cevaplar
Hiç cevap bulunamadı.