Konular

Mod_rewrite kılavuzu (nasıl 404 yönlendirme yapabilirim?)

Mod_rewrite’ı veya htaccess dosyaları ile yönlendirme yapmayı duymayan kalmamıştır
www.dijitalders.commod_rewrite’ı veya htaccess dosyaları ile yönlendirme yapmayı duymayan kalmamıştır. standart bir htaccess dosyasına bakacak olursak:
1
2
3
4
5
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

bu kurallar wordpress’in rewrite kuralları.

1. satırda Rewrite motorunun kullanılacağını belirtiyoruz.
2. satırda bu kuralların bütün kök ve alt dizinlerde geçerli olduğunu söylüyoruz.
3. satırda REQUEST_FILENAME değişkeninde tutulan isimde bir dosya eğer yoksa diyoruz
4. satırda REQUEST_FILENAME değişkeninde tutulan isimde bir klasör eğer yoksa diyoruz
<5. satırda bütün istekleri index.php'ye gönder deyip L (LAST) bayrağı ile bu conditionları sağlayan durumlarda yapılacak son rewrite'ın bu olduğunu belirtiyoruz.

Detaylı İnceleme

RewriteEngine on|off

Apache’de , öntanımlı olarak rewrite motoru kapalı olarak geliyor. mod_rewrite ile yönlendirme yapacaksak eğer ilk satırda RewriteEngine On’a ihtiyacımız var.

RewriteOptions Seçenek

Burada Kullanabileceğimiz iki seçenek var. MaxRedirects değeri ve inherit opsiyonu. MaxRedirects aynı isteğin kaç kere yeniden yazılacağını belirliyor. inherit ise MaxRedirets’in değerinin bir üst klasörde geçerli olan değer olmasını söylüyor. Öntanımlı olarak MaxRedirects=10, inherit ise kapalı.

RewriteBase URL

Fiziksel yer ile sanal yer farklı ise RewriteBase ile isteklerin nereye geldiğini belirtmemiz gerekiyor. Örneğin sunucuda /home/yiit/ahmet/mehmet klasöründe bulunan dosyalarımız url olarak www.site.com/cenk yolu ile çağırılıyorsa /home/yiit/ahmet altındaki .htaccess’de

1
RewriteBase /cenk

bulundurmamız gerekiyor.

RewriteCond var1 var2

RewriteCond’u eğer var1 var2′ye uyuyorsa bir sonraki satıra geç şeklinde bir if yapısı olarak düşünebiliriz. şöyle örnekler sunabiliriz:

1
RewriteCond %{REQUEST_URI} yiit.php

bu satır, eğer %{REQUEST_URI} yiit.php ise diyor. yiit.php’nin başına ünlem koyarak (!yiit.php) REQUEST_URI yiit.php değilse diyebilirdik.

1
RewriteCond %{HTTP_HOST} gro.tiiy.yiit.org

burada ise eğer HTTP_HOST gro.tiiy.yiit.org ise diyoruz. .htaccess dosyasında düzenli ifadeler (regular expressions - regex) de kullanabiliriz. Aynı örneği geliştirelim:

1
2
RewriteCond %{HTTP_HOST} !www.yiit.org
RewriteCond %{HTTP_HOST} ([^.]+).yiit.org

burada subdomain eğer www dışında bir şeyse dedik. ileride subdomain ismine erişmek istersek %1 değişkenini kullanabiliriz. burada dikkat edilmesi gereken şey iki rewritecond arasında bir and olduğu. yani sadece bu ikisini de sağlayan durumlar rewriterule’a geçebilecek. eğer ikisinden birini sağlamasını isteseydik OR bayrağını kullanacaktık:

1
2
RewriteCond %{HTTP_HOST} !www.yiit.org [OR]
RewriteCond %{HTTP_HOST} ([^.]+).yiit.org

Kullanabildiğimiz Değişkenler

RewriteCond ile oluşturduğumuz değişkenlere %n şeklinde ulaşabiliyoruz. örneğin

1
RewriteCond %{HTTP_HOST} ^(.*).(.*)

böyle bir kuralımız varsa birinci (.*) yani HTTP_HOST’un ilk noktadan önceki kısmı %1,ilk noktadan sonraki kısmı %2 oluyor.

RewriteRule değişkenleri ise $n şeklinde. rewritecond ve rewriterule değişkenlerini aynı kuralın içinde kullanmak mümkün:

1
2
RewriteCond %{HTTP_HOST} ([^.]+).yiit.org
RewriteRule ^(.*)$ yok.php?adres=⊂=%1

bu durumda gro.tiiy.yiit.org/ahmet.php aslında yiit.org/yok.php?adres=ahmet.php⊂=gro.tiiy olarak işlem görecek.

Sunucu değişkenleri ise %{SUNUCU_DEGISKENI} şeklinde kullanılıyorlar. tam listesini yazının sonuna ekliyorum.

RewriteCond’da kullanabileceğimiz iki bayrak var. bunlar NC ve OR. NC büyük-küçük harf duyarsız işlem yapılmasını söylüyor. OR ise daha önce söylediğim gibi iki rewritecond’u öntanımlı olan and yerine or ile bağlamasını söylüyor.

bunların dışında RewriteCond parametreleri var. Wordpress örneğinde gördüğümüz -f ve -d dışında -s ve -l var. -s’nin işlevi -f gibi, fakat yaratılmış bir dosyanın var olup olmadığından fazla olarak bu dosyanın boyutunun 0′dan büyük olup olmadığına da bakıyor. -l ise böyle bir symlink olup olmadığına bakıyor. bu dört parametre de ünlem işareti ile birlikte anlamlarının tersine kullanılabilir. (!-f)

RewriteRule

Örnekle başlayalım:

1
RewriteRule ^(.*)$  yok.php?adres= [L]

Bu kural gelen bütün istekleri yok.php’de $_GET[’adres’] değişkeninin içine atar. yani /index.php’ye girmek istedi diyelim ki kullanıcı, sunucu ona aslında yok.php?adres=index.php’yi gösterir. Ama bu bir yönlendirme şeklinde olmaz, adres aynı kalır.

RewriteRule bayrakları

[bayrak] şeklinde kullanılıyorlar.

R=301: Belirttiğiniz adrese 301 yönlendirmesi yapar.
F: Forbidden belirttiğiniz adres 403 döndürür. Kullanıcılara sayfayı görmesi için izin verilmez. RewriteCond ile birlikte kullanılıp toplu adres engellemesi yapılabilir.
L: Bu rewriterule’ın son yönlendirme olduğunu söyler. Eğer bu bayrak olmazsa mod_rewrite maxredirects değişkeniniz doğrultusunda sürekli yönlendirme yapacaktır.
NC: büyük küçük ayrımı yapmadan rewrite yapar.
QSA: GET ile gelen isteği de adrese ekler.

Server Değişkenleri


HTTP headers:

HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT
connection & request:

REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
server internals:

DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_ADDR
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
system stuff:

TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
specials:

API_VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ

Kaynak gro.tiiy.yiit.org/yazi/mod_rewrite-klavuzu-nasil-404-yonlendirme-yapabilirim.html

Yorumunuzu Ekleyin
Apache Nedir?

Apache, GNU lisanslı yani açık kaynak kodlu, güçlü, sağlam, yetenekli ve esnek bir http (web) sunucusudur.

30,702 Okunma 0 Yorum 04/10/2011 09:52:34 19/09/2014 09:52:59

Temel Apache Konfigurasyonu

Bu bolumde, basit yapiya sahip bir apache web sunucusunu yonetmeyi,gerekli temel ayarlamalari yapmayi ogrenecegiz. Tum ayarlamalari www. Turk-php. Com alan adina gore yapacagiz. Bu nedenle kendi alan adinizi kullanirken herhangi bir problemle karsilasmadan, ayarlari kendinize uygun hale getirebileceksiniz

19,182 Okunma 0 Yorum 26/06/2007 00:52:04

Permalink Yapımı Php Mod_rewrite Kullanımı

Kullancağımız modül bkz. Mod_rewrite. Önceliklewww. Harmankaya. Org/goster. Php?id=5 gibi bir linki www. Harmankaya. Org/goster-3-yazi-basligi. Html gibi kafamdan bir örnek buluyorum ve başlıyorum. İlk işimiz . Htaccess dosyası kullanarak . Php dosyayı html olarak yorumlamayı göreceğiz bunun için /root altındaki . Htacces dosyasına ekleyeceğimiz kod

18,971 Okunma 0 Yorum 24/09/2008 05:47:20

Yönlendirme

İngilizce Redirectionslarla ilgili bir makale

18,217 Okunma 0 Yorum 15/08/2007 22:04:38

httpd.confApache HTTP Sunucusu Ayar Dosyası

Bu dosyada Apache, httpd, ana sunucu birbirine eş anlamda kullanılmıştır.Kullanılan Türkçe terimlerin yanlarında, ilk sefere özel olarak İngilizce karşılıkları da verilmiştir. Ancak, Symbolic link, PID, Unix sistem çağrıları gibi temel kavramlar olduğu gibi bırakılmıştır.

17,398 Okunma 1 Yorum 26/06/2007 21:48:57 18/01/2015 20:40:22

Apache Konfigürasyonunuzu Güvenli Hale Getirmenin 20 Yolu

Peter Freitag'in apache konfigürasyonunda yapılacak bazı düzenlemeler hakkındaki, Apache Security kitabından da alıntılar içeren önerileri. Not: Önerilerin bir garantisi yoktur. Sunucunuzu daha sıkı yapacaktır fakat bütün önerileri yaptıktan sonra sunucunuz %100 güvenli olacak diye bir garanti yok. Ayrıca önerilerin bazıları sizin ortamınızda performansı düşürebilir veya problemlere yol açabilir. Önerilen değişikliklerin ortamınıza uyup uymayacağına karar vermek size kalıyor.

16,629 Okunma 0 Yorum 26/06/2007 21:38:07 07/12/2014 23:16:16

.htaccess

Htaccess'in nerelerde kullanılabileceği hakkında hoş bir ingilizce makale

16,595 Okunma 0 Yorum 15/08/2007 21:57:19 18/01/2015 20:31:50

Otomatik Subdomain Yaratma

Herşeyden önce apache sunucusuna yönelik anlatacağım. Önümüzde 2 yol var: biri . Htaccess, evet şu ünlü htaccess hep kaçtığınız ama artık tamam pes dediğiniz olay; diğeri ise php. (cUrl gibi alternatifler de var ama benim bilgim dahilinde değil)…

16,310 Okunma 1 Yorum 14/08/2007 02:10:08

Apache 2.x Kurulumu

Apache 2.x 'in Windows 7 üzerine kurulumu

15,902 Okunma 0 Yorum 24/10/2011 10:22:24

htaccess kullanımı

Htaccess; web alanında birçok faydalı yönlendirme işlerininyapılmasını sağlayan, Apache web sunucularında olan etkili ve çok amaçlı bir ayar dosyasıdır.

15,058 Okunma 0 Yorum 13/10/2013 09:47:19 18/01/2015 20:31:43

Otomatik Sub Domain Oluşturma

Wildcard DNS host servisiniz tarafından aktif edilmiş olmalıdır. Wildcard DNS *.alanadiniz.com şeklindeki bir altdomaindir ve bu domain site IP nize yönlendirilmiş olmalıdır.

13,957 Okunma 1 Yorum 24/11/2013 10:07:15 19/09/2014 10:09:00

htaccess ile Mobil Ziyaretçilerin Mobil Sürüme Yönlendirilmesi

Akıllı telefonların ve tabletlerin yaygınlaşması ile internetin mobil kullanımı büyük oranda arttı. İleride desktop ve laptopları tamamen bırakır mıyız bilmem ama mobil kullanımın giderek daha da artacağı aşikar gibi görünüyor.

13,377 Okunma 0 Yorum 14/10/2013 10:04:02 19/09/2014 10:04:25

Apache Yönergeleri

Apache konfigrasyon dosyaları için gerekli yönergeler

7,650 Okunma 0 Yorum 07/12/2014 23:24:44 18/01/2015 20:28:01

Yükleniyor...