PHP htaccess kullanımı
Htaccess; web alanında birçok faydalı yönlendirme işlerinin yapılmasını sağlayan, Apache web sunucularında olan etkili ve çok amaçlı bir ayar dosyasıdır.
Web projelerinizi bir çok şekilde düzene sokup kullanıcı dostu URL’ler yapmamıza ve bir takım yollarla güvenlik önlemleri de almanıza yarayan ve bu alanda en favori olaylarımdan bir tanesidir.
Htaccess ile neler yapabiliriz?
- SEO dostu URL’ler oluşturabilme.
site.com/icerik.php?id=123 yerine site.com/icerik-basligi gibi - Subdomain ya da dizin yönlendirmeleri.
site.com girildiğinde www.site.com’a yönlendirme gibi - “404 sayfa bulunamadı” gibi tüm hata sayfalarını istenilen yere yönlendirebilme.
site.com/olmayan-sayfa-asdasd girildiğinde sizin belirlediğiniz bir sayfa açılabilir. - Sitenizin tamamına ya da bir dizine sadece belirli bir IP’nin girebilmesini sağlayabilirsiniz.
Siteniz yapım aşamasındayken sadece sizin girip diğerlerini yapım aşamasında sayfasına yönlendirebilirsiniz. - Özel dizinlere erişim engelleme.
Sadece include edilen php dosyalarının olduğu bir klasörün kullanıcılar tarafından girilmesini engelleyebilirsiniz. - Bazı web servisi botlarının sitenizi taramasını engelleyebilirsiniz.
Hoşunuza gitmeyen bir web arama motorunun ya da spam bir web servisinin sitenizi taramasını engelleyebilirsiniz. - Özel dizinlerinizi şifreleyebilirsiniz.
PHP ile bir dizin kontrol sistemi yazmaya uğraşmak yerine hemen bir kaç satır htaccess komutu ile istediğiniz dizine şifre ile girilmesini sağlayabilirsiniz. - Resimlerinizin başka sitelerde görünmesini engelleyebilirsiniz.
Başka sitelerde sizin sitenizdeki resimlerin gösterilmesini engelleyerek sunucunuzun bant genişliğin başka sitelerce harcanmasını önleyebilirsiniz. (bu yöntemin adı hotlink diye geçer) - Ve bu yukarıda sayılanların haricinde bu yöntemleri bir arada kullanarak çok daha fazlasını yapabilirsiniz.
Hadi şimdi sırayla bu yukarıda saydıklarımın nasıl yapıldığına bakalım.
SEO ve kullanıcı dostu bağlantılar oluşturma
Htaccess’in en popüler kullanım alanlarından birisi budur. Ve sizin de en sevdiğiniz özelliklerinden birisi olacağına inanıyorum.
Bu olayı kullanmanın 2 ideal yöntemi var; birincisi önceden öğrendiğimiz GET metodu ile sayfa.php?sayfa=iletisim şeklinde, ya da POST metodu gibi “REQUEST_URI” ile kullanmak. Hangisi kolayınıza geliyorsa onu seçebilirsiniz fakat benim favorim “REQUEST_URI”den yana.
Yöntem 1: GET metodu kullanarak yapmak.
Öncelikle bir içerik sayfa.php‘miz olsun ve örnek amaçlı switch ile sayfaları tanımlayalım:
if(!isset($_GET['sayfa'])) { // eğer boşsa anasayfa varsayalım. $sayfa = 'anasayfa'; } else { $sayfa = $_GET['sayfa']; } switch($sayfa) { case 'iletisim': echo '<h2>İletişim</h2>'; echo '<p>Bize [email protected] adresinden ulaşın!</p>'; echo '<p><a href="/">Anasayfa</a></p>'; break; case 'hakkinda': echo '<h2>Hakkında</h2>'; echo '<p>Bizi tanıyan tanır, yeniler örnek alır, tanımayanlar ibret alır.</p>'; echo '<p><a href="/">Anasayfa</a></p>'; break; case 'anasayfa': echo '<h2>Sitemize hoşgeldiniz!</h2>'; echo '<p><a href="/hakkinda">Hakkında</a><br/>'; echo '<a href="/iletisim">İletişim</a></p>'; break; default: // hiç birisi değilse 404 varsayalim echo '<h2>Bulunamadı!</h2>'; echo '<p>Böyle bir sayfamız henüz yok, değiştirilmiş ya da silinmiş olabilir.</p>'; }
Şuan htaccess kullanmadan bu sayfamızı “sayfa.php, sayfa.php?sayfa=hakkinda, sayfa.php?sayfa=iletisim” şeklinde kullanabiliriz. Şimdi gelelim bunu kullanıcı dostu yapmamıza, bu kısımda kod kısmımızda herhangi bir şey değiştirmemize gerek yok.
Sitemizin ana dizinine “.htaccess” adında dosya oluşturuyoruz. Eğer FTP programınız ya da işletim sisteminiz böyle bir dosya oluşturmanıza izin vermiyorsa, not defterinden boş bir sayfa açıp kodları içerisine yazıp, farklı kaydet diyip, “Tüm dosyalar” seçeneğini seçip “.htaccess” yazıp bu dosyayı oluşturabilirsiniz.
İçerisine şu satırları yazıyoruz:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ sayfa.php?sayfa=$1 [QSA,L]
Bu işlemi yaptıktan sonra Htaccess; kullanıcılar eğer olmayan bir sayfaya girmeye çalışırlarsa, yani normalde /hakkinda ya da /iletisim gibi bir dizinimiz olmadığı için, 404 hata sayfasına değil de bizim sayfa.php dosyamıza yönlendirecek.
Fakat yönlendirirken girilmiş olan sayfayı bizim dosyamıza “sayfa” GET parametresi olarak gönderek. Yani bu şekilde site.com/deneme diye girildiğinde arkaplanda çalışacak olan sayfa “site.com/sayfa.php?sayfa=deneme” olacaktır.
Sonuç olarak yine aynı sistem çalışsa da kullanıcılar artık php dosyalarının adını ya da diğer GET parametresi uzantılarını yazmasına gerek kalmadan temiz ve akılda kalıcı bağlantılarla sitenizde gezebiliyor.
Yöntem 2: REQUEST_URI ile yapmak.
Diğer yöntemden tek farkı $_GET[‘sayfa’] yerine girilen adresi $_SERVER[‘REQUEST_URI’] ile okuyoruz. Fakat burada bize ilk baştaki “/” işaretini de veriyor (“/hakkinda” şeklinde). Bunun için ilk karekteri substr fonksiyonu ile atlıyoruz.
Yani kod kısmımızın ilk 5 satırını şöyle değiştireceğiz:
$sayfa = substr($_SERVER['REQUEST_URI'], 1); // ilk "/" karakterini atlıyoruz. if(!empty($sayfa)) { // eğer boşsa anasayfa varsayalım. $sayfa = 'anasayfa'; }
.htaccess dosyamızda da bu yöntem için bir satırlık değişiklik yapıyoruz, GET parametresi tanımladığımız kısmı siliyoruz:
RewriteRule ^(.*)$ sayfa.php?sayfa=$1 [QSA,L] // yerine RewriteRule ^(.*)$ sayfa.php [L]
Subdomain ya da dizin yönlendirme
Bu blog üzerinde bir örneğini görebilirsiniz; phpr.org diye girmeye çalıştığınızda sizi otomatik olarak www.phpr.org adresine yönlendirir. Buradaki mevzu kişinin zevkine de bağlı olsa da daha çok arama motorları ile alakalı. Bazı durumlarda Google sitenizin “www” ekli olan ve olmayan halini farklı iki site gibi değerlendirebiliyor. Mesela bir sitenizin bir çok yerde linki hem “www” ile hem de olmadan paylaşılınca kısmen domain popülerliğini dağıtmış oluyor.
Htaccess ile “www” olmadan girildiğinde ekleyerek kalıcı yönlendirme yapıldığında tüm ilgiler tek bir subdomain ve domainde toplanıyor.
RewriteEngine On RewriteCond %{HTTP_HOST} phpr.org [nc] RewriteRule (.*) //www.phpr.org/$1 [R=301,L]
İsterseniz tam tersini de yapabilirsiniz;
RewriteEngine On RewriteCond %{HTTP_HOST} www.phpr.org [nc] RewriteRule (.*) http://phpr.org/$1 [R=301,L]
Bir dizin yönlendirmek için de çok basit olarak tek bir satır ile yapabiliyoruz. Dikkat edilecek nokta dizini ne şekilde yönlendireceksiniz? Genel olarak kalıcı (301) ya da geçici (302) durumları kullanılır. Dahası için buraya bakabilirsiniz.
Eğer kalıcı yönlendirme (301) derseniz arama motorları girilen adresdeki indexleri yeni yönlenen adres ile değiştirir. Geçici derseniz herhangi bir değişiklik yapmadan yönlenen adrese girer ve tarar.
RewriteEngine On RewriteRule ^eski_adres$ /yeni_adres [R=301,L]
Hata sayfalarını yönlendirme
Hata sayfalarının durum kodlarını öğrenmek için şuraya bakabilirsiniz. Bunlardan en yaygın olarak bildiğimiz; 404 kodlu sayfa bulunamadı, bir diğer örnek olarak da 403 kodlu giriş izni olmayan sayfa hatasıdır.
Dikkat etmeniz gereken nokta; yukarıda SEO ve kullanıcı dostu bağlantılar oluşturma yönteminin temeli, olmayan sayfaları yani 404 kodlu sayfaları bizim belirli dosyamıza yönlendirme olduğu için o yöntemi kullanırken bu aşağıdaki kodlar ile 404 sayfası tanımlamaya çalışmak faydasız olacaktır.
ErrorDocument 403 /izin_yok.html ErrorDocument 404 /bulunamadi.html
Belirli IP adresine izin verme/engelleme
Tüm bir siteyi olduğu gibi isterseniz sadece belirli klasörlere göre de IP erişim engeli koyabilirsiniz. Bunu yapmak için hazırladığınız “.htaccess” dosyasını ilgili alt klasörün içerisine koymanız yeterli.
deny from all #herkesin girmesini engelle allow from 127.0.0.1 #bu ip adresine izin ver allow from 192.168.0.0/255 #ya da bu ip blokunun girmesine izin ver
Ayrıca sadece “deny from all” diyerek kullanıcılar tarafından erişimini tamamen engelleyebilirsiniz.
Bazı bot ve web servislerinin erişimini engellemek
İstemediğiniz ya da sitenizde aşırı dolaşıp yoran botları basit bir htaccess hamlesiyle engelleyip sunucunuzu rahatlatabilirsiniz.
Şu adreste genel olarak mimlenmiş kötü amaçlı olduğu düşünülen tüm botların bu yöntem için olan listesini bulabilirsiniz. Ben örnek amaçlı bir kaç tanesini yazacağım.
RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR] RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR] RewriteCond %{HTTP_USER_AGENT} ^Wget [OR] RewriteCond %{HTTP_USER_AGENT} ^Widow [OR] RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR] RewriteCond %{HTTP_USER_AGENT} ^Xaldon WebSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Zeus RewriteRule .* - [F]
Ayrıca bu yöntem ile mobilden giren kişileri de algılayıp mobil sitenize yönlendirilmesinde de kullanabilirsiniz.
RewriteCond %{REQUEST_URI} !^/mobil_dizin/.*$ RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC] RewriteRule ^(.*)$ /mobil_dizin/ [L,R=302]
Özel dizinleri şifrelemek
Bu yöntem için öncelikle basit bir şifre dosyası oluşturmamız gerekiyor. Dosyanın içerisine her satıra bir kullanıcı ekleyebiliyoruz. Ve her satırda “isim:şifre” şeklinde kullanıcı adı ve şifreleri tanımlıyoruz.
Şifre dosyamızın adını .htpasswd yapıp .htaccess dosyamızda belirteceğmiz bir yere yerleştiriyoruz. Sonrasında bu bilgiler ile şifrelemek istediğimizin dizinin içerisine aşağıdakileri yazıyoruz.
AuthUserFile /dosya/dizini/.htpasswd AuthType Basic AuthName "Gizli Dizin"
İçeriklerin başka sitelerde kullanılmasını engellemek
Hotlink adıyla bilinen bu yöntem sayesinde sitenizde olan müzik, resim, video gibi içeriklerin başka sitelerde gösterilip, oynatılmasını engellemenizi sağlıyor. Bu sayede sunucunuzun bant genişliğinin başka siteler üzerinden harcanmasına engel oluyorsunuz.
Bu yöntemde başka siteden bizdeki bir resim görüntülenmek istendiğinde ona istenilen resim yerine bir hotlink uyarı resmi gösterebiliyoruz. Bunun çokça örneğini imageshack.us’da görmüşsünüzdür.
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+.)?phpr.org[NC] RewriteRule .*.(zip|mp3|avi|wmv|mpg|mpeg)$ //www.phpr.org/hotlink.jpg [R,NC,L]
Dikkat edilmesi gereken bazı detaylar
Farkettiyseniz yukarıda gösterdiğim yöntemlerin neredeyse hepsinde ilk “RewriteEngine on” komutu var. Eğer bu yöntemlerden bir kaçını birlikte kullanacaksanız tekrar tekrar bu satırı eklemenize gerek yok. Bunu sadece htaccess dosyanızın en başında bir kere yazmanız yeterlidir.
Diğer önemli husulardan birisi de birden fazla komut kullanırken işlemlerin sıralamasının öneminin olduğunu unutmayın. Yani eğer ilk önce 404 hata sayfası uyarı komutunu yazıp, alt satırına SEO dostu bağlantı komutlarını yazarsanız, önce 404 hata sayfa komutu tetiklenip ilgili yere gideceği için SEO dostu bağlantı yöntemi çalışmaz.
Parantez içlerinde kullanılan NC, L ve R harflerinin anlamları:
- L: Last
Bu tanımlanmadan önce ifade edilen kurallar bundan sonrakilere geçmemesini ve karışmamasını sağlar. - R: Redirect
Bu değer kullanılırsa browserda adres değişir, kullanılmazsa yönlendirme arkaplanda yapılır fakat kullanıcının girdiği URL aynı kalır. - NC: No Case
Büyük küçük harfe duyarsız davranır. - QSA: Query String Append
GET metodu ile yönlendirme yaptığımızda yönlendirilen yere sonuna eklenen GET parametrelerini de dahil eder.
Diğer tüm ifadeler için buraya bakabilirsiniz.
Bir başka faydalı PHP serüveninde görüşmek üzere esen kalın!
Yazılanlar ilgini çektiyse, yenilerinden haberdar olmak için e-mail bültenine abone olabilirsin.
Merhaba gerçekten çok detaylı ve çok güzel bir yazı dizisi olmuş, .htacces ile ilgili sıkıntılarda yönlendirebileceğim bir makale olmuş.
Gerçekten muhteşem bir makale olmuş Musa, eline sağlık.
Merhabalar. SEO ve kullanıcı dostu bağlantılar oluşturma , konusundaki , linkleri gizleme yani;
http://site.nett/klasor1/klasor2/index.php?sayfa=iletisim
olayını
http://site.nett/klasor1/klasor2/iletisim
yapamdım. Hiç bir şekilde olmuyor. Yardımcı olursanız sevinirim. Teşekkürler.
sizin hazırlamış olduğunuz .htacces ve php dosyasını burada (pastebin ile) paylaşırsanız daha rahat yardımcı olabiliriz.
Sitemde güncellemeye gittim. Sef link denilen seoya uygun link tarzı yapmaya çalıştım.
Sorunum .htaccess de eski olan değerli sayfalarımı yeni sayfalara yönlendirmek. htaccess dosyasında yaptığım yönlendirme şekli şu:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^index.php?sayfa=servis&id=57$ /servis-guncel-iletisim [L,R=301]
gibi. Fakat sayfada bu şekilde yapılan yönlendirme kabul olmuyor.
Yönlendirmeyi sayfa=servis&id=57$ / servis-guncel-iletisim olarak yaparsam oluyor. Fakat başına index.php? koyarsam olmuyor. Bu şekilde çok sayfam var ve sayfa değerlerini kaybetmek istemiyorum. 3011 yönlendirmesi yapıp sayfaya gelen linkleri çalıştırmam lazım.
Yardım ederseniz gerçekten müteşekkir olurum. Kolay gelsin..
bunun için iki kural girmemiz gerekiyor. birincisi eski linkleri yeni linke yönlendirecek, diğeri ise yeni link yapısının açacağı sayfayı belirlemek.
ikincisi link yönlendirmesi değil, sunucu tarafında bir yönlendirme. bu yüzden ikincisine “R=301” eklemedik.
hemen deneyceğim. Eğer olursa o kadar yere yazdım bir tane doğru cevap gelemedi. İlgin için çok teşekkür ederim.
Malesef olmadı. Yönlendirme kuralını htaccess dosyasına şu şekilde yazmıştım. RewriteRule ^servis-(.*)$ index.php?sayfa=servis&adres=$1 [L]
yani başına “servis-” gelen adresleri yönlendirme yaparak link sistemini oluşturdum. databasede adres diye sütun açtım ve oradan elimle girdiğim adresleri çağırttırdım.
Önceki link bağlantımda http://www.site.com/index.php?sayfa=servis&id=57 olan adresimi http://www.site.com/servis-guncel-iletisim sayfasına r301 ile yönlendirmek istiyorum. İlk mesajda yazdığım gibi sayfa=servis&id=57$ olarak linki yazarsam yani başına index.php koymadan yazarsam http://site.com/sayfa=servis&id=57 yazıp siteye girersem r301 yönlendirmesi oluyor ve istediğim sayfaya gidiyorum. http://site.com/index.php?sayfa=servis&id=57 olarak yazdığımda 301 yönlendirmesi çalışmıyor ve eski sayfaya ulaşmaya çalışıyor. Sie nasıl ulaşabilirim ayrıca? isterseniz kullanıcı adımdaki mail adresine iletişim bilgilerinizi mail atabilirsiniz. yinede ilginiz için teşekkür derim şimdiden.
tamam şimdi anladım. index.php’ye direkt girişleri yeni linklere yönlendirme işlemini htaccess ile değil de index.php içinden php kodu ile yapmamız gerekiyor. orada htaccess yönlendirmesi yapmamız yanlış olmuş.
yapman gereken htaccess dosyası ile “/servis-iletisim” diye girildiğinde “index.php?sayfa=servis&adres=$1&sef=1” dosyasına yönlendirmek. farkettiysen sonuna sef=1 ekledim. eğer bu değer yoksa kişi kendisi girmiştir ve onu sen php ile “/servis-iletisim” adresine yönlendirmelisin.
htaccess dosyasını ise şöyle yap:
Musa Bey bilgiler için teşekkür ederim. Fakat htacces üzerinden yönlendirirsem sayfa değerleri korunur kalacak. Toplasan böyle 10 adet sayfa var ve bunları .htaccess üzerinden yönlendirme yaparsam sayfa kaliteleri devam edecek. dediğinizde deneyeceğim fakat .htaccess üzerinden yönlendirme yapmanın bir yolu yok mu?
index.php girenleri php kodu ile yönlendirmenin bir sakıncası yok. ama ille de bunu da htaccess ile yapmak istiyorum diyorsanız:
bu şekilde yazdığım zaman ayrıca 301 yönlendirilecek sayfayıda yazmam lazım mı? veya bu kodları yazdıktan sonra http://www.site.com/index.php?sayfa=servis&id=57 diye tıklanan bir link otomatikman yönlendirilecek mi?
en son gönderdiğim htaccess içeriğini kullandığında php tarafında bir şey yazmana gerek yok. bana yukarıda gösterdiğin link örneğine göre “index.php?sayfa=servis&adres=iletisim” diye girlince “/servis-iletisim” adresine yönlendireceğini görürsün.
sizinle mail adresim üzerinden iletişim kurabilir miyiz? Dediğiniz gibi oldu. Aslında her adres satırı için otomatik bir çözüme ulaştırdınız ama istediğim olmadı. Yardımlarınız için Allah sizden razı olsun. Sıkıntı şu önceki adres sistemi id li olduğu için siteye http://www.site.com/index.php?sayfa=servis&id=57 tıklayan kişi için geçerli değil. Fakat oluşturduğunuz kod sistemi http://www.site.com/iindex.php?sayfa=servis&adres=iletisim yazarsa dediğiniz gibi çok güzel oluyor. Fakat id ile yazıldığı zaman gitmiyor. Mail adresimi açıktan yazmama gerek var mı? kullanıcı bilgilerimde var.
id’li olanı php ile olması gereken link adresini veritabanından çekip yeni link yapısına header kodu ile 301 yönlendirin. yani kullanıcı index.php?sayfa=servis&id=57 dediğinde hemen ilk satırlarda 57 id’li servis sayfasının adresini buldurup “/serivis-iletisim” şeklinde o sayfaya yönlendirin.
🙂 Keşke o kadar php bilgim olsaydı. Kolaysa nasıl yapılacağına dair bir örnek verebilir misiniz? Kullandığım sistemde php de sayfa seçimini şöyle yapılıyor örnek olarak.
Bu sistemde nasıl bir yol izleyebilirim? eğer zor bir durumsa bi şekilde halletmenin yolunu bulmaya çalışacağım.
pekala bundan sonrası biraz bu konunun dışına çıkıyor, özelden devam edebiliriz.mail adresine bir şeyler gönderiyorum şimdi.
Yukarıda ki gibi bir yapı oluşturdum ama hep page.php değerinde ki kural işliyor. örneğin id’si 1 olan sayfa, yazı, ürün kategorisi, marka ve albüm var. bunlara tıkladığımda hep id’si 1 olan sayfayı açıyor. sayfa id’si ile aynı id’ye sahip diğer bölümlerde de içerik varsa hep sayfa id değerini işliyor.
çözemedim bir türlü neyi eksik yapıyorum…
htaccess’de sıralama önemli. yani yukarıdan aşağıya doğru işlenir komutlar. eğer ilk komuttaki koşul uygun olursa yönlendirmeyi yapar.
sizin attığınız kodda her satırdaki komutu koşulu aynı ve doğal olarak ilk sıradaki çalışınca diğerlerine inmiyor.
öncelikle her satırda farklı bir koşul ifade etmelisiniz, bu sayede sunucu sırayla gidip en uygun olanında durur. bunun için mantıklı ufak bir örnek vermek gerekirse:
bu şekilde yaptığınızda, girilen sayfa eğer “/yazi/123-abc.html” şeklinde ise ilk komutu es geçip ikincisinde yönlendirecektir. çünkü ilkinde ilk bölümün “sayfa” olmasını ifade ettik.
umarım anlatabilmişimdir, ayrıca bu konuyla alakalı olarak bu yazıdaki “SEO ve kullanıcı dostu bağlantılar oluşturma” başlığını tekrar incelemenizi öneriyorum.
mutlu kodlamalar.
Peki urlleri olabildiğinde kısa tutmak istersek nası yapacağız bunu script içerisinde. Örnek:
domain.com/kategori.html
domain.com/urun.html
domain.com/konu.html
gibi.
Ayrıca index.php?islem=kategori&adi=kategori-adi
gibi bir linkleme ile.
Merhabalar hocam.
benim kendi yaptığım blog scriptinde url olayı mesela bir yazı okuyacak isek devamını oku linki
oku.php?id=$id
şeklinde
ve db bilgileri ise
Ben bunlara göre sef url nasıl yaparım.
yani
http://site.com/yazi-basligi
eğer normal yapın id’sine göre bulmaksa şuanki hali ile /yazi-basligi şeklinde ulaşamazsın. /123/yazi-basligi şeklinde yapabilirsin.
ya da özellikle sadece yazı başlığı olsun istiyorsan bunun için öncelikle başlığa göre bulan bir oku.php ayarlaman gerekiyor. yani oku.php?sef=yazi-basligi sonrasında htaccess ile /yazi-basligi diye gireni oku.php?sef=yazi-basligi adresine yönlendireceksin.
harbiden adamın dibisin Musa 🙂 mvc çalışıyodum daha evvel gördüm ama inceleme fırsatım olmadı kısmet bu güneymiş 🙂 saolasın
merhaba musa avcı
benim şöyle linklerim var bir tanesini yazıyorum
Şifremi unuttum gördüğünüz gibi http://www.siteadım.com/index.php?sayfa=sifretalep sayfam var ve ben bunu .htaccess ile http://www.siteadım.com/sifretalep yapmaya çalışıyorum iki haftadır ama yapamıyorum yardım ederseniz çok sevinirim 2 haftadır yapamadım aklım gidiyor. Şimdiden teşekkürler
merhabalar, aşağıdaki htaccess kodu işinizi görmesi gerekiyor;
daha iyi anlamak için yazıdaki ve yorumlardaki örnekleri inceleyip denemenizi öneririm.
linklerim ise şu şekilde < a href="sifretalep" linklere yanlış şeyler mi yazıyorum
Yukardaki cevabın, yardımın ve ilgin için çok teşekkürler. Musa ben senin dediğini yaptım fakat elimde en az 30 url var. Hepsi için tek tek yukardaki gibi mi yapacağım. Mesela bende şöyle bir url var ; siteadım.net/index.php?Git=üyekayıt&sayfa=üyeol ; gördüğün gibi en az 30 tane böyle url var benim üyekayıt bir kasör. o klasörün içinde de index.php dosyam var çoğu işlemi orda yapıyorum.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?Git=$1&sayfa=$1 [QSA,L]
yanılmıyorsam bu genel kodlar fakat bende çalışmıyor ne yapmalıyım.
şeklinde deneyin.
yani benim istediğim ise şu siteadım.net/üyekayıt/üyeol şeklinde gözükmesi ilgin için tekrar teşekkür ederim
musa peki link kısmına nasıl yazayım yani a href kısmına <a href="üyekayıt/üyeol" şeklinde mi yazacağım . Denedim çalışmıyor link kısmına nasıl yazacağımı bilmiyorum
evet; “/uyekayit/uyeol” şeklinde girmeye çalıştığınızda “index.php?Git=uyekayit&sayfa=uyeol” olarak yönlendirmesi gerekiyor.
The requested URL /sidebar/Java was not found on this server. bu hatayı alıyorum . şimdi sana tam olarak anlatayım benim bir linkim var localhost/index.php?Git=sidebar&sayfa=Java ben senin dediğin gibi /sidebar/Java şekline soktum htaccessi de dediğin gibi yaptım şöyle
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ index.php?Git=$1&sayfa=$2 [QSA,L]
sidebar klasöründe index.php sayfası yaptım içerisinde $sayfa=kodtemizle($_GET[“sayfa”]);
switch($sayfa)
{
case “Java”:java();break;
}
kodlarım var. Fakat dediğim gibi yukardaki gibi The requested URL /sidebar/Java was not found on this server. böyle bir sayfa yok hatası aldım
sunucunuzda apache mod_rewrite açık olup olmadığını kontrol edin, büyük ihtimalle .htaccess hiç çalışmıyor.
çalışıyor musa çünkü ben linkimi şöyle yaptığımda <a href= "gonder" ve
htaccess içine şu kodu yazdığımda çalışıyor
RewriteRule ^gonder$ index.php?Git=uyehesabi&sayfa=sifregonder [QSA,L]
adres çubuğunda şöyle görünüyor bu çalıştığını göstermez mi ?
localhost/gonder şeklinde bir url veriyor
ne diyorsun sence neden 404 hatası alıyorum ? sitede dosyalarımın klasörlerimin kodlarımın bulundukları kısımları resimlerini sana göndereyim mi ne nerde diye?
Önemli bir sitemde sistem değişikliği yaptığım için eski uzun karışık urlyi yeni bir url ye yönlendirmem lazım. Çok fazla sayıda içerik olduğu için bunu elle yapmak çok zahmetli olacak.
Sizden ricam bu konuda verdiğim urlerle yardımcı olmanız. Gelen eski urldeki değişken kelime yeni url de eklenerek yönlendirilecek.
Eski URL : sonuclar/0.html?pattern=DEĞİŞKEN KELİME&rpp=0&sort=0
Yeni URL : bilesen/arama/?searchword=DEĞİŞKEN KELİME&ordering=newest&searchphrase=all&limit=10&a rea s[0]=media
Teşekkürler.Güzel açıklamalar.
Merhaba hocam, öncelikle htaccess ile ilgili bu nacizane bilgiler için teşekkür ederim. Yalnız benim sormak istediğim bir konu var. Örneğin herhangi bir siteden gelen referans linklerin parametre değerlerini almamız mümkünmüdür htaccess ile ? bunu normalde php scriptinde yapabiliyorum ama kolay yoldan yani sorgu yazmadan htaccess ile yapmanın bir yolu varmı? Biraz araştırdım ama sonuca pek ulaşamadım.
Örnek verecek olursak http://www.refsitesi.com/url?tip=23&giden=true&oy=3&url=benimsitem.com/makale-adi.html
bu siteden gelen değişkenler yani oy ve url değişkenlerinin değerlerini almak istiyorm. Bunu nasıl yapabiliriz hocam?
aşağıda araştırdığım ve edindiğim bilgilere göre bu değerler kullanılıyor ama
RewriteCond %{HTTP_REFERER} .*refsitesi.*$
RewriteCond %{QUERY_STRING} ^*url=.*$
pek çözemedim hocam
isterseniz bu olayı PHP ile daha rahat yapailirsiniz. $_SERVER[‘HTTP_REFERER’] değişkenini kullanarak sayfaya nereden gelindiğini alıp PHP ile daha rahat parçalara bölüp (regexp, explode, vs.) istediğiniz sonuca ulaşabilirsiniz.
İlköncelikle Merhaba , yazdığınız makale gerçekten çok iyi olmuş tebrik ederim. Fakat benim yaptığım bir deneme bir sorun oluştu. Bu sorunu aşağıdaki linkte görebilirsiniz..
http://www.dogancantat.com/hata.png
Konudaki verileri dahil herşeyi çekiyorum fakat CSS dosyası sanırım çöktü. Bir türlü düzeltemedim. Yardımcı olursanız sevinirim. İyi çalışmalar..
Hocam çok güzel yazı tebrik ederim.Ama ben
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ sayfa.php?sayfa=$1 [QSA,L]
Bunu kullanmak istedim.Ama şu şekilde bir sıkıntı ile karşılaşıyorum.Örneğin http://www.deneme.com/ilan/ilan-ekle sayfasına gittim.Bundan hemen sonra /ev sayfasına gitmeyi bir butona atadığım zaman benim istedigim http://www.deneme.com/ev‘e gitmesi ama o http://www.deneme.com/ilan/ev ‘e gidiyor.Bu şekilde bir hata ile karşılaştım nasıl halledebilirim.Teşekkür ederim
linleri href=”/ev” şeklinde yaparsanız ana dizine gidecektir.
Makale süper elinize sağlık Musa bey. Birşey sormak istiyordum benim linkim bu şekilde
http://www.site.net/makale_oku.php?id=1&sef=cok-komik-bir-video
fakat ben bunun başına birde hangi kategori ise onuda yazdırmak istiyorum yani istediğim link tipi şu
http://www.site.net/komik/1-cok-komik-bir-video.html
Veritabanından kategoriyi falan da çektim linki yukarıdaki gibi hazırladım onda sorun yok ama .htaccess kısmının içinden çıkamadım.
Yardımcı olursanız minnettar olurum. Çalışmalarınızda başarılar..
Anlatım çok güzel olmuş emeğinize sağlık
Anlatım süper ama ben şunu çözemedim.
“.$baslik.” linkim böyle htaccess ise RewriteRule ^(.*)-(.*)/$ ayrinti.php?baslik=$1&id=$2 [L,NC] böyle her iki dosyamda ana dizinde www klasöründe ayrinti.php ise if(!isset($_GET[“baslik”]) || !isset($_GET[“id”])){
echo”Link yok”;
}else{
$id = $_GET[“id”];
echo “secici: “.$_GET[‘id’].””;
$sor2 = mysql_fetch_array(mysql_query(“SELECT * FROM ilanlar WHERE baslik=’$baslik’ AND id=’$id'”));
bunu bir türlü çözemedim
Merhabalar, öncelikle bu güzel paylaşımınızdan ötürü teşekkür ederim.. Benim de bir sorunum var..
Notlar klasörü içerisinde.. index.php, notlar.php ve detay.php olmak üzere 3 dosyam mevcut.. Bunların notlar ve detay kısımlarının seolu olmasını istiyorum..
Yani index’ten gelen birisi oradaki linke tıkladığında (kategori1.html) şeklinde notlar.php sayfası açılsın isitoyrum.. Notlar sayfasından da bir linke tıklanınca (odev1.html) şeklinde gözükmesini istiyorum.. Bunu nasıl yapabilirim yardımcı olursanız çok sevinirim..
Bu şekilde yazınca sadece detay kısmı çalışıyor.
Options +FollowSymLinks
RewriteEngine on
ReWriteRule ^notlar/(.*?)-(.*?).html$ notlar/detay.php?id=$1
ReWriteRule ^notlar/(.*?)-(.*?).html$ notlar/notlar.php?id=$1
RewriteEngine On
ReWriteRule ^(.*)-(.*).html hizmetler.php?grup_id=$2 [L,NC]
ReWriteRule ^(.*)-(.*).html hizmetdetay.php?urun_id=$2 [L,NC]
birinci sırada yazan için link şekilleniyor fakat ikinci sıradaki işlemde yanlışlık oluyor, şöyle ki, ikinci linkin id numarasını doğru alırken içerik olarak birinci linkin içeriğini getiriyor hatayı nerde yapıyorum acaba.
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@localhost 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.
klasöre .htaccess oluşturdum ve yukarıdaki hatayı aldım neden acaba
.htaccess dosyanızda yazım hatası yapmış olabilirsiniz. Eğer htaccess dosyanız hatalıysa böyle bir uyarı alırsınız.
Arkadaş benım bir sıkıntım httacess ben yazdiğim bütün css js ve resimler etkilenıyor. bunun etkilenmemesi için ne yapmam gerek
htaccess kuralları tanımlarken varolan dosya ve dizinlere müdahale etmemek için yukarıda yazdığım iki koşulu eklemeniz gerekiyor. Örnek kullanımı da yine yazının içerisinde mevcut.
Bu konuda o kadar çok site dolaştımki sonunda aradığımı buldum. Elinize, emeğinize sağlık.
Bir klasörün tamamına ve alt dizinine kullanıcı adı ve şifre ile erişim için htaccess ile active directoryde kayıtlı bir kişinin kullanıcı adı ve şifresi ile giriş yapmasını istiyorum.kullanıcı adı ve şifre girildikten sonra yine kullanıcı adı ve şifre ekranı geliyor sorun ne çözemedim.ldap kontrolünü php ile yapabiliyorum ama htaccess te sıkıntı var.yardımcı olursanız sevinirim.
AuthType Basic
AuthBasicProvider ldap
AuthName “Giris için Kullanici Bilgileri ile giris yapabilirsiniz.”
AuthzLdapAuthoritative off
AuthLdapUrl “ldap://test.com:389/DC=test,DC=com?sAMAccountName?sub?(objectClass=*)” NONE
AuthLDAPBindDN “[email protected]”
AuthLDAPBindPassword “deneme”
require valid-user
php testi çalışıyor.
$ldaphost = “test.com”;
$ldapport = 389;
$ds = ldap_connect($ldaphost, $ldapport)
or die(“Could not connect to $ldaphost”);
if ($ds)
{
$username = “[email protected]”;
$upasswd = “deneme”;
$ldapbind = ldap_bind($ds, $username, $upasswd);
if ($ldapbind)
{print “Congratulations! $username is authenticated.”;}
else
{print “Nice try, kid. Better luck next time!”;}
}
.htaccess içinde, tüm sayfalarda kullanabileceğimiz sabit değer barındırabilir miyim? Mesela MOBIL_URL yazdığım yer yerde “site.com/mobil_url” değerini versin. Böyle bişey mümkün müdür?
Merhabalar ,
Sitemde ufak bir etiket sistemi yaptım. Etiketlere tıkladığında get ile etiket.php sayfasında sorguluyor. .htaacces ile bunun maskelemesinide yaptım. Örneğin deneme etiketine tıkladığında etiket/deneme diye sonuç veriyor ve sayfa görüntülenebiliyor. Ancak etiketimiz deneme-yazisi gibi arası – olursa sayfa 404 veriyor.
.htaccess dosyamın içeriği bu şekilde. Yardımcı olabilir misiniz ?RewriteRule (.*)etiket/([0-9a-zA-Z]+)(/?)$ etiket.php?etiket=$2 [L,NC]
Kuralınızın içerisinde “[0-9a-zA-Z]” diyerek; 0 ile 9 arası ve A’dan Z’ye harfleri ifade etmişsiniz. Yani “-” işareti bu ifadede yer almıyor. Bunun için bu ifadenin içerisine kaçış karakteri ile “-” eklemeniz gerekiyor. Yani şöyle olması lazım;
Selam.
Ben htaccess ile nasil yapa bilirim kullanicilar php isimlerini goremesin.
php isimleri farkli mesela: menu.php , fight.php , online.php ve s.
“Bildiklerini Anlatan” sitede senin bildiklerini anlatmışlar 🙂
http://www.bildiklerim.net/bildiklerimiz/php-htaccess-kullanimi/
eline saglık güzel olmuş hocam
Merhaba hocam bende anlatımınıza bakarak çok uğraştığım bir konuda yardım rica edicektim.
wp anadizininde kendi oluşturduğum bir dosya var(oku.php).Örnekliyeyim
Yazı içerisine siteismi.com/oku.php?id=5 diye link veriyorum.Buna tıklanınca id’si 5 olan yazının özel alanlarını çekerek farklı bir sayfa oluşturdum.Çalışmada sorun yok.Ben htaccess dosyasına nasıl bir ekleme yaparak siteismi.com/yaziismi/oku gibi çalışmasını sağlayabilirim?
htaccess dosyasında kalıcı bağlantılar kısmından eklediğim kodlarda mevcut.Yardımcı olursanız duacınız olurum.
hakan kardeş wp kalıcı bağlantılar kısmında aşağıdaki gibi yaparsan sanırım istediğin olur
%postname%.html
Selam Musa
seo linkinden sonra sepete ekle linki çalışmadı
“nicon-t34.html?action=ekle&sid=34” şeklinde fakat sepete eklemiyor, urun-detay.php?action=ekle&sid=34 yazınca ekliyor
nerde yanlış yapıyorum yardımcı ola bilirmisin
e-ticaret için hazırladığım
htaccess dosyasının içeriği şöyle:
DirectoryIndex index.php
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)-t([0-9]*).html$ urun-detay.php?t=$2 [L,NC]
RewriteRule ^([0-9]+)-urun-kategorileri-(.*).html$ urun-kategorileri.php?katid=$1 [L,NC]
RewriteRule ^(.*).html$ $1.php [L,NC]
urun-detay.php sayfasında sepete ekle linki şöyle:
SEPETE EKLE
ve action içeriği :
if($_GET[‘action’]==”ekle”){
if(in_array($_GET[‘sid’], $sepet)){
if($adet[$key]<10)$adet[$key]++;
}else{
array_push($sepet,$_GET['sid']);
array_push($adet,1);
}
header("Refresh: 1; url=sepet.php");
Merhaba, benim şöyle bir sorunum var. Butonlara linkleri index.php?page=sayfaadi şeklinde veriyorum, ve index.php sayfasındada get metodu ile gelen değer eğer sayfaadi şuysa bu içeriği göster şeklinde koşullar yazıyorum, htacces dosyasıda anlatılanlar şeklinde yaptım ama linklere tıklayınca yine index.php?page=sayfaadi şeklinde gözüküyor. Acaba linkleri ne şekilde vermem gerekir? Link verirken hatalımı veriyorum?
.htacces gayet başarılı şekilde çalışıyor. Anadizinde .htaccess dosyası var ve bir site var. anadizin/klasör/klasör konumunda ayrı bir site var, .htaccess anadizin/klasör konumuna etki etmesin istiyorsam ne yapmam gerek ?
o dizine de .htaccess dosyası açabilirsiniz.
Emeğinize sağlık güzel paylaşım ..
peki 2.domain olarak yönlendirmeyi cpanel’den yaptım fakat anadomain’deki bir altklasör’de 2.domain’in linkleri değişmeden kullanmak istiyorum bunu nasıl yapabilirim acaba?
ReWriteCond %{HTTP_HOST} ^(www.)?domain2.com$ [NC]
ReWriteRule ^(.*)$ /altklasor/$1 [L]
yapıyorum çalışmıyor.
Merhaba hocam bir sorum olacaktı. Yönlendirme yapınca websitemiz
.css .js gibi dosyaların yolunu bulamaz oldu. Ör: site.com/kategori/katismi <== gibi olunca tasarım ve jquery elemanları çalışmıyor. Fakat; site.com/kategori.php?kat=katismi gibi olunca sorun yok. Bu sorunu nasıl çözeceğiz?
RewriteEngine On
RewriteCond %{HTTP_HOST} localhost [nc]
RewriteRule (.*) http://www.phpr.org/$1 [R=301,L]
hocam bu kodu .htaccess dosyasına kopyaladım localhost diye değişiklik yaparak ama takıldı kaldı htaccess dosyasını siliyorum yine de sayfa yerine php.org açılıyor anlamadım gitti 🙁
çerezleri silince düzeldi, demekki bu url yönlendirme çereze kayıt yapıyormuş 🙂
Hocam merhaba WordPress sitemde kalıcı bağlantılarda değişiklik yaptım sonun .html ekledim. Ama sorun var google indexlerinde .html olmadığı için sıralama alan konularıma biri tıklanyınca 404 sayfası çıkıyor bu aşabilme ihtimalimim varmı
http://scott.yang.id.au/pages/permalink-redirect.html bu adresteki eklenti işini görecektir
Adamın dibisin 😀
Bir çok google arama sonucundan bu siteye geliyorum fakat bana lazım olan konuların hiçbiri sıfırdan ele alınmamış belki diğer konularda böyledir. O kadar aradım bu htaccess konusunu hiç bilmeyenler için bir ders bulamadım. Bu sitede bilgi var teşekkürler ama belli bir temeli olanlar için. Mesela index.php?pid=1 diye bir sayfam var bunu nasıl optimize edebilirim yukarıda 1 metreden fazla olan yazıda cevabı yok. Bu htaccess neyin konusu kendi başlı başına bir dil midir yok regex konusu mudur?. Yine de teşekkürler.
Musa Bey 1 aydır aradığım sorunun cevabını konuda vermişssiniz ama çok denememe rağmen bir türlü doğru sonuca gidemedim.
Benim Link şeklim şu şekilde index değilde tindex.php(httacces’buna yönlendirdim)
tindex.php?url=anasayfa,tindex.php?url=iletisim gibi.
“RewriteEngine On
DirectoryIndex tindex.php?url=anasayfa
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ tindex.php?url=$1 [QSA,L] ”
Çözüm olmadı bu kod yardımcı olursanız sevinirim
Merhaba hocam size ufak bir sorum olacaktı;
ceb.im sistemini belki duymuşsunuzdur free wap sitesi veren bir servis bu sistemdeki gibi domainleri nasıl oluşturabilirsi?
Örnek olarak phpr.ceb.im phpr.tr.nu gibi
güzel mekale olmuş çok teşekurler
selamlar
sitede url yapisi degistim.
wp sitede
/category/etiketismi
seklindeki urller
/etiketismi
olarak kisaldi
yalniz eski seklini yeni sekline yönlendirmek istiyorum
bunu htaccess ile nasil yapabilirim ?
tesekkürler
netbeans de localde çalışan proje sunucuya atılınca adres satırında siteadi.com/Home şeklinde çıkıyor. bu Home nasıl kaldırılır. siteadi.com olarak görünmesi nasıl sağlanır?
Merhabalar. Ben sitede seflink yaptım. Şöyle bir durum var
http://www.siteadi.com/deneme/sayfa olarak yazınca giriyor.
http://www.siteadi.com/deneme/sayfa.php yazınca da giriyor..
Benim istediğim şey sonda .php yazınca bunu farklı yere yönlendirmek istiyorum. Yaptığım yöntem şu
RewriteRule ^(.*).php$ hata.php [L,NC]
Bunu yapınca seflinkte de aynı yönlendirmeyi yapıyor…
Çözümü nedir?
merhaba.codeları yazmıssın ama mesle [L,NC] bunların matıgını ya da % niye koyuyoruz gibi anlatmamıssın.Mantıgını ögrenmessek bu yazdıklarının ötesinde birsey yazamayız.Sen kod yazım mantıgını bunun nereden ögrendin.Yani [L,NC] niye konulur ne zaman konulurlu nasul ogrendin
Yorum için çok özür dilerim sayfanın en sonuna apache baglantısı koymussun ve hatırlatma yapmıssın.ama keske sayfanın en ustune biraz hatırlatma yapsan,o zaman kodu daha iyi anlardık.Yani önce konuya ait parametreleri vermeden,örnege gecmek cok saglıklı degil.
arkadaşlar google bot sitemin ana sayfasına ulaşamıyor. google yetkililerine sordum birkaç neden saydılar bunların içersinde .htaccess dosyası da mevcut… benim htaccess dosyam
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
önceden birkaç defa oynadım site bağlantıları tamamen gitmişti geri getirmek için uğraşmıştım. bu konuda bilgisi yüksek bir arkadaştan yardım bekliyorum şimdiden teşekkür ederim...
Arkadaşlar merhaba. Sitemdeki dosyalar eksiksiz fakat anasayfa dışında hiç bir yere gidemiyorum.Bir iki kişi .htcaccess ile alakalı dedi ama nasıl yapacağımı anlatmadılar. Yardımcı olabilcek arkadaşlar mail atarsa sevinirim. Birde serverim windows. windows serverlerde .htcaccess komutlarının bazıları çalışmıyormuş bilgilerinize.
Merhaba hocam aynı sorun bendede var siz nasıl çözdünüz??
Musa Bey, bilgilendirici yazılarınız ve sorulan sorulara açıklayıcı şekilde verdiğiniz yanıtlar için teşekkürlerimi sunmak istedim. İyi çalışmalar.
Paylaşımınız için teşekkürler, çok faydalı oldu. Kolay gelsin!
hocam güzelde işin kötü tarafı
RewriteRule ^(.*)$ sayfa.php [L]
örneğin bide iletisim.php olduğunu düşünün hangi php dosyasını açacağını nasıl söyleye biliriz
merhaba, oldukça güzel ve açıklayıcı bu yaznız için öncelikle size teşekkür ediyorum Benim merak ettiim bir konu var izin verirseniz onu size sormak istiyorum. wordpress tabanlı sitelerde seo dostu url yaptığımızda urldeki karakterler arasında – işareti yerine + işareti koyabilmemiz mümkünmüdür. eğer bu mümkünse nasıl yapılır. bu konuda yardımlarınızı bekliyorum. saygılarımla
Merhaba
Sitemin ana url sine frame olarak yönlerdiğim alan adının ana url gibi index.php olarak açılmasını nasıl sağlayabilirim acaba?
Merhaba. Öncelikle bu şahane paylaşım ve bilgilendirme için teşekkür ediyorum. MaşaAllah. Bir wordpress sitenin kaynak kodlarını htaccesle gizleyebilirmiyiz? Sitenin kaynak kodlarını biri açınca karşısına sitenin wordpress altyapısı ile yapılmış olduğu bilgileri çıkıyor. örneğin wp-content/themes/ vs vs diye gidiyor. Bunun görünmesini engelleyebilirmiyiz?. Sitenin wordpress altyapısını htaccesle gizleyebilirmiyiz?. Bilgi verirseniz sevinirim.
Neden gizlemek istiyorsunuz ki, aksine gurur duyulacak bir şey 😛
Bahsettiğiniz gibi css, js ve imaj dosyalarını ana dizindeki başka bir klasöre taşıyın. Bir de wp-admin giriş dosyasını da değiştirebilirsiniz. Bununla alakalı bazı kaynaklar var araştırırsanız bulabilirsiniz.
http://index.havaizleme.gov.tr/Map/StationInfo/
Antalay’da Hava Kalitesi indeksini alabilmek için uğraşıyorum ama sanırım bu site veri çekmeyi engelliyor nasıl yapabilirim bu konuda yardımcı olabilir misiniz?
RewriteRule ^sayfa sayfa1.php [NC]
RewriteRule ^sayfa/sayfa2 sayfa2.php [NC]
Hocam birinci seçenekte problem yok ama 2. seçenekte de aynı sayfa açılıyor. Yardımcı olabilirmisnizi nedere hata yapıyprum
Sıralamasını değiştirmelisiniz, alttakini üste yazın düzelir.
Slm
Site adı şöyle açılıyor
http://www.siteadi.com/index.php
site açıldığı zaman http://www.siteadi.com şeklinde görünmesini yani /index.php görünmesin istiyorum ne yapmam gerekir
teşekkürler
Merhaba,
Çözdünüz mü sorununuzu, ilgili kodu paylaşır mısınız?
Merhaba Cem Bey,
Belirttiğiniz sorununuzu çözdünüz mü? Bilgilerinizi yazar mısınız?
slm
subdomaini yönlendirdiğim sayfada adres yerinde subdomain adresinin görülmesini istiyorum ne yapmam gerekir
Merhaba Musa kardes “Subdomain ya da dizin yönlendirme“ kodlarini kullandim fakat basarili olamadim yonlenmiyor. yonlendirmek istememin sebebi opencart kurdum http://www.siteadi.com olarak girdigimde site duzgun calisiyor. fakat siteadi.com olarak girdigimde site duzgun calismiyor. (örn. sepede ekle butonlari bazi image lar sitedeki butun ozellikler.) bunu nasil duzeltebilirim? teamwiewer versem yardimci olurmusunuz? cevabinizi bekliyorum tesekurler.
ooooo son zamanlarda gördüğüm en güzel türkçe makale.10 satır okudum hemen sık kullanılanlara ekledim.Emeğinize sağlık çok teşekkür ederim kendi adıma.
Merhaba birde abimin firmasının internet sitesi var http://www.atacet.com.tr diye bunun url yapısı seo dostu değil bir bakıp bunun seo dostu yapmam için gerekli kodlar konusunda yardımcı olursanız sevinirim iyi çalışmalar.
Arkadaşlar şöyle bir link yapısı için nasıl bir kodlama gerekir
(linklerin veritabanından çekilmiş id leri var onların göstermeden)?
taxiyo.com/transfers/turkey/
taxiyo.com/transfers/dalaman-airport/
taxiyo.com/transfers/dalaman-airport/marmaris/
Şu yaptığınızın değeri yok. Yemin ediyorum paha biçilemez harika açıklamalar ve paylaşımlar. Helal olsun…
Selamlar hocam. Sitede direk kalıcı yönlendirmeyi yapıyoruz ama subdomainle gelen bağlantıyı bi türlü halledemedik..
Örnek:
http:sub.benim-sitem.com adresinden geleni,
http:sub.senin-siten.com’a yönlenmesini istiyoruz ama olmuyo ve bu başta yazdığım ”sub” sürekli değişken oluyo. Tek tek yapabiliyoruz ama öyle uğraşmadan 1 kodla halledebilirmiyiz?
Yardım ederseniz sevinirim.. Şimdiden teşekkürler.
Musa Hocam. WordPress ile kurulmuş bir sitem var.Ortalama 100 adet yazı yazdım ve kalıcı bağlantılardan .com uzantısını .html olarak değiştirdiğimde yazılarda “sayfa bulunamadı” hatası alıyorum.Sonradan değiştirince neden bu şekilde bir sorun yaşıyorumdur ?
İyi çalışmalar,
Müthiş bir yazı olmuş.Bir çok soru işaretni giderdi bende.Ellerinize sağlık.Kaliteli bir library oldu benim için
Dediğiniz Gibi Harfi harfine yaptım .htaccess adlı bir dosya oluşturup tüm dosyaları seçip yaptım fakat localda boyle bir hata alıyorum
“500 Internal Server Error” ne yanlış yaptığımı bana söylerseniz sevinirim
htaccess dosyanızda hata yapmış olabilirsiniz, sakıncası yoksa hatayı daha iyi anlayabilmemiz için htaccess dosyanızın içeriğini burada paylaşabilir misiniz?
anlatım çok güzel hocam ama benim sorum şöyle sitemi tamamen link yapısını değiştirmek istiyorum öncelikle
sarki.php?sarki_id=123 browserda bu şekilde görünüyor ben bunu .htaccess ile sarki/deniz-seki-adaletsiz–secim olarak yapmak istiyorum google aramalarında sayfalar hata verecek ve gerileyecek nasıl bir yol izlemem lazım yönlendirme için… ? şimdiden teşekkürler
çok sağolun
merhabalar, bu sayfayı daha önce de ziyaret ettiğim için sık kullanılanlara eklemiştim, o zamanlar bu url formatlamada çok işime yaramıştı ama şu an problemliyim. yapmaya çalıştığım şey:
domain.com/index.php?tur=makale&id=5&adres=neden-olmuyor
şeklindeki yapıyı
domain.com/makale/5/neden-olmuyor.html
şeklinde kullanmak..
.htaccess dosyam:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)$ index.php?tur=$3&id=$2&adres=$1 [QSA,L]
burada htaccess çalışıyor, ancak adres değeri olmadığı zaman arkaplanda makale/5.php gibi bir dosya çağırmaya çalışıyor. index sayfamdaki şu koddan dolayı:
$stur = $_GET[‘tur’];
if($stur==NULL){
require_once(‘anasayfa.php’);}
else {require_once($stur.’.php’);}
işin içinden çıkamaz oldum, bi yardım bi el atıverin 🙂
bu arada sözü geçmişken her parametreye sadece kendi değerini nasıl aldırabilirim? yani require ederken tur parametresini id ile birlikte almamasını nasıl sağlarım (genel yapı olarak, sadece tur için değil)
Merhaba Hocam şöyle bir sıkıntı var, localhost/Project/adminweb/listeleme linkini htacces ile localhost/Project/listeleme şekline nasıl dönüştürebilrim.
Şu an kullanılan hacces kodu;
RewriteRule ^([0-9a-zA-Z-_/]+)$(/?) index.php?url=$1 [QSA,L] bu şekildedir.
Koly gelsin .html uzantısını nasıl gizleyebilirim peki bir yardım edermısınız?
anlatım çok güzel ve çok işime yaradı ancak iki tablodan bilgi çekiyorum oda şöyle
marka.php?marka_id=20&id=35 diye bilgi çekiyorum ve içeriği yazdırabiliyorum.
ancak işin içine htaccess girince biraz karıştırdım. linki çağırıyorum ancak başaramadım içerik listeletemiyorum.
/// htaccess kodu ///
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^marka/([0-9a-zA-Z-_]+)/(.*)$ marka.php?marka_id&id=$1&kat_adi=$2 [L,NC]
/// php kdum link ///
marka/.html
php link kodum
marka/20/35/tofas-s.html die ekrana çıkıyor fakat içi boş geliyor
gerçekten verdiğiniz bilgiler çok işime yaradı özellikle spam botları sitelerden uzak tutma kodunu hemen ekledim kendi htaccesime.. teşekkür ederim admin.
Netteki en ayrıntılı bilgi kaynaklarından biri php hakkında merak ettiğim bir şey olursa buraya bakıyorum teşekkürler elinize sağlık
Siteye giren botlara nasıl doğrulama sorabilirim ?
Bu işlem için Google Captcha kullanabilirsin; https://www.google.com/recaptcha/intro/index.html
Merhaba Musa Bey,
adres çubuğuna siteadi.com.tr/index.php yazıldığında url’sinin hiç açılmayıp siteadi.com’a yönlenmesini istiyorsak hangi kodu kullanmalıyız?
sitemde çoklu dil var ve ben htaccess olarak şunu yapmak istiyorum siteadi.com/tr yada siteadi.com/en diğer sayfalar içinde siteadi.com/tr/kategori yada siteadi.com/en/category bunu nasıl yapabilirim ardımcı olurmusunuz
Ana dizindeki seo için uyguladığımız .htaccess sub domainlerimi de etkiliyor. subdomainlerin etkilenmemesi için bir önerisi olan var mı arkadaşlar ?
Şimdiden teşekkürler…
Yararlı bilgiler için teşekkürler hocam
Beş para etmez.
çok kaliteli bir paylaşım teşekkür ederim.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
kodları dizinleri RewriteRule komutundan etkilenmekten alıkoyamıyor dizinler de etkileniyor acaba nerede hata yapıyor olabilirim ?
Hocam acaba bu yöntemle selamlar.com diye aratılınca http://www.issizkagit.com sitesine yönlendirme yapabilir miyim?
Çok teşekkürler ❤