{"id":38264,"date":"2026-01-27T09:40:55","date_gmt":"2026-01-27T06:40:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38264"},"modified":"2026-01-27T09:40:55","modified_gmt":"2026-01-27T06:40:55","slug":"apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/","title":{"rendered":"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>\u0130nternet d\u00fcnyas\u0131nda web sitelerinin kullan\u0131c\u0131 deneyimi, arama motoru optimizasyonu (SEO) ve genel performans\u0131 i\u00e7in URL&#8217;lerin yap\u0131s\u0131 kritik bir \u00f6neme sahiptir. Karma\u015f\u0131k, parametrelerle dolu URL&#8217;ler hem kullan\u0131c\u0131lar taraf\u0131ndan hat\u0131rlanmas\u0131 zor hem de arama motorlar\u0131 taraf\u0131ndan daha az tercih edilen bir yap\u0131 sunar. \u0130\u015fte tam bu noktada &#8220;URL yeniden yazma&#8221; (URL rewriting) devreye girer. Bu teknik, sunucu taraf\u0131nda gelen istek URL&#8217;lerini alarak, daha okunabilir, anlaml\u0131 ve SEO dostu bir formata d\u00f6n\u00fc\u015ft\u00fcrmeyi sa\u011flar.<\/p>\n<p>Bu makalede, Apache web sunucusunun en g\u00fc\u00e7l\u00fc mod\u00fcllerinden biri olan <code>mod_rewrite<\/code>&#8216;\u0131 kullanarak Ubuntu 16.04 i\u015fletim sistemi \u00fczerinde URL&#8217;leri nas\u0131l yeniden yazaca\u011f\u0131m\u0131z\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Ubuntu 16.04, uzun s\u00fcreli destek (LTS) s\u00fcr\u00fcm\u00fc olmas\u0131 nedeniyle bir\u00e7ok sunucu ortam\u0131nda hala yayg\u0131n olarak kullan\u0131lmaktad\u0131r ve Apache 2.4 s\u00fcr\u00fcm\u00fc ile birlikte gelir. <code>mod_rewrite<\/code>&#8216;\u0131n temellerinden ba\u015flayarak, kurulumunu, yap\u0131land\u0131rmas\u0131n\u0131, yayg\u0131n kullan\u0131m senaryolar\u0131n\u0131 ve hata ay\u0131klama y\u00f6ntemlerini ad\u0131m ad\u0131m ele alaca\u011f\u0131z. Amac\u0131m\u0131z, web geli\u015ftiricilerine ve sistem y\u00f6neticilerine, temiz URL&#8217;ler olu\u015fturma, y\u00f6nlendirmeler yapma ve web uygulamalar\u0131n\u0131 daha esnek hale getirme konusunda kapsaml\u0131 bir rehber sunmakt\u0131r.<\/p>\n<h2>mod_rewrite Nedir?<\/h2>\n<p><code>mod_rewrite<\/code>, Apache HTTP Sunucusu i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir URL manip\u00fclasyon mod\u00fcl\u00fcd\u00fcr. Gelen URL isteklerini, d\u00fczenli ifadeler (regular expressions) kullanarak dinamik olarak yeniden yazma veya ba\u015fka bir URL&#8217;ye y\u00f6nlendirme yetene\u011fi sunar. Bu mod\u00fcl, web sunucusunun \u00e7ekirdek i\u015flevselli\u011fine entegre edilmi\u015f olup, HTTP isteklerinin i\u015flenme d\u00f6ng\u00fcs\u00fcn\u00fcn erken a\u015famalar\u0131nda devreye girer. Bu sayede, taray\u0131c\u0131ya g\u00f6sterilen URL ile sunucunun dahili olarak i\u015fledi\u011fi URL aras\u0131nda bir soyutlama katman\u0131 olu\u015fturulur.<\/p>\n<p><code>mod_rewrite<\/code>&#8216;\u0131n g\u00fcc\u00fc, karma\u015f\u0131k ko\u015fullar tan\u0131mlayabilme ve bu ko\u015fullara ba\u011fl\u0131 olarak farkl\u0131 yeniden yazma veya y\u00f6nlendirme eylemleri ger\u00e7ekle\u015ftirebilmesinden gelir. \u00d6rne\u011fin, bir web sitesindeki <code>urun.php?id=123<\/code> gibi bir URL&#8217;yi kullan\u0131c\u0131 dostu <code>urun\/123<\/code> \u015feklinde g\u00f6sterebilirsiniz. Ya da HTTP \u00fczerinden gelen t\u00fcm istekleri otomatik olarak HTTPS&#8217;ye y\u00f6nlendirebilirsiniz. Bu esneklik, modern web uygulamalar\u0131n\u0131n geli\u015ftirilmesinde, SEO stratejilerinde ve g\u00fcvenlik \u00f6nlemlerinde <code>mod_rewrite<\/code>&#8216;\u0131 vazge\u00e7ilmez bir ara\u00e7 haline getirir.<\/p>\n<p>Kurallar genellikle iki ana yerde tan\u0131mlanabilir:<br \/>\n1.  <strong>Sunucu Yap\u0131land\u0131rma Dosyalar\u0131:<\/strong> <code>httpd.conf<\/code>, <code>apache2.conf<\/code> veya <code>sites-enabled<\/code> dizinindeki sanal host yap\u0131land\u0131rma dosyalar\u0131 (<code>.conf<\/code>). Bu y\u00f6ntem, performans\u0131 art\u0131r\u0131r \u00e7\u00fcnk\u00fc Apache sunucu ba\u015flat\u0131ld\u0131\u011f\u0131nda veya yeniden y\u00fcklendi\u011finde kurallar\u0131 bir kez okur ve \u00f6nbelle\u011fe al\u0131r.<br \/>\n2.  <strong><code>.htaccess<\/code> Dosyalar\u0131:<\/strong> Belirli dizinlerde bulunan da\u011f\u0131t\u0131lm\u0131\u015f yap\u0131land\u0131rma dosyalar\u0131d\u0131r. Bu dosyalar, sunucu y\u00f6neticisinin ana yap\u0131land\u0131rma dosyalar\u0131na eri\u015fimi olmayan kullan\u0131c\u0131lar\u0131n (\u00f6rne\u011fin payla\u015f\u0131ml\u0131 hosting kullan\u0131c\u0131lar\u0131) kendi dizinleri i\u00e7in \u00f6zel kurallar tan\u0131mlamas\u0131na olanak tan\u0131r. Ancak, her gelen istekte Apache&#8217;nin ilgili dizin ve \u00fcst dizinlerde <code>.htaccess<\/code> dosyalar\u0131n\u0131 aramas\u0131 ve okumas\u0131 gerekti\u011fi i\u00e7in performans\u0131 olumsuz etkileyebilir. G\u00fcvenlik ve performans a\u00e7\u0131s\u0131ndan m\u00fcmk\u00fcnse sunucu yap\u0131land\u0131rma dosyalar\u0131 tercih edilmelidir.<\/p>\n<p>Ubuntu 16.04 \u00fczerinde Apache 2.4 ile \u00e7al\u0131\u015f\u0131rken, genellikle <code>\/etc\/apache2\/apache2.conf<\/code> ana yap\u0131land\u0131rma dosyas\u0131 veya <code>\/etc\/apache2\/sites-available\/<\/code> i\u00e7indeki sanal host dosyalar\u0131 (<code>.conf<\/code> uzant\u0131l\u0131) kullan\u0131l\u0131r. E\u011fer <code>.htaccess<\/code> kullanmak isterseniz, ilgili dizin i\u00e7in <code>AllowOverride All<\/code> y\u00f6nergesini ayarlaman\u0131z gerekecektir.<\/p>\n<h2>Ortam Kurulumu ve \u00d6n Gereksinimler<\/h2>\n<p><code>mod_rewrite<\/code>&#8216;\u0131 kullanmaya ba\u015flamadan \u00f6nce, Ubuntu 16.04 sunucunuzda Apache&#8217;nin kurulu ve <code>mod_rewrite<\/code> mod\u00fcl\u00fcn\u00fcn etkinle\u015ftirilmi\u015f oldu\u011fundan emin olmal\u0131y\u0131z. Ayr\u0131ca, <code>.htaccess<\/code> dosyalar\u0131 kullanmay\u0131 planl\u0131yorsan\u0131z, Apache&#8217;nin bu dosyalardaki kurallar\u0131 okumas\u0131na izin vermemiz gerekecektir.<\/p>\n<h3>Ubuntu 16.04&#8217;te Apache Kurulumu<\/h3>\n<p>E\u011fer sunucunuzda Apache hen\u00fcz kurulu de\u011filse, a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek kurabilirsiniz:<\/p>\n<p>1.  Paket listelerini g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>2.  Apache web sunucusunu kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install apache2<\/code><\/pre>\n<p>3.  Kurulumdan sonra Apache servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status apache2<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmelisiniz.<br \/>\n4.  G\u00fcvenlik duvar\u0131 (UFW) kullan\u0131yorsan\u0131z, Apache&#8217;ye gelen trafi\u011fe izin vermeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Apache Full'\n    sudo ufw enable<\/code><\/pre>\n<p>    Taray\u0131c\u0131n\u0131zda sunucunuzun IP adresini ziyaret etti\u011finizde &#8220;Apache2 Ubuntu Default Page&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>mod_rewrite Mod\u00fcl\u00fcn\u00fc Etkinle\u015ftirme<\/h3>\n<p>Apache kurulumu tamamland\u0131ktan sonra, <code>mod_rewrite<\/code> mod\u00fcl\u00fcn\u00fc etkinle\u015ftirmemiz gerekir. Ubuntu\/Debian tabanl\u0131 sistemlerde bu i\u015flem <code>a2enmod<\/code> (Apache 2 Enable Mod) komutu ile kolayca yap\u0131l\u0131r:<\/p>\n<p>1.  <code>mod_rewrite<\/code> mod\u00fcl\u00fcn\u00fc etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo a2enmod rewrite<\/code><\/pre>\n<p>    Bu komut, <code>\/etc\/apache2\/mods-available\/rewrite.load<\/code> dosyas\u0131ndan sembolik bir ba\u011flant\u0131 olu\u015fturarak mod\u00fcl\u00fc etkinle\u015ftirir.<br \/>\n2.  De\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in Apache servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<p>Art\u0131k <code>mod_rewrite<\/code> kullan\u0131ma haz\u0131rd\u0131r.<\/p>\n<h3>Dizin \u0130zinlerini Yap\u0131land\u0131rma (AllowOverride)<\/h3>\n<p>E\u011fer URL yeniden yazma kurallar\u0131n\u0131z\u0131 <code>.htaccess<\/code> dosyalar\u0131nda tan\u0131mlamak istiyorsan\u0131z (ki bu, \u00f6zellikle payla\u015f\u0131ml\u0131 hosting ortamlar\u0131nda yayg\u0131nd\u0131r), Apache&#8217;nin ilgili dizinler i\u00e7in <code>.htaccess<\/code> dosyalar\u0131n\u0131 okumas\u0131na izin vermeniz gerekir. Bu izin, Apache&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 olan <code>\/etc\/apache2\/apache2.conf<\/code> i\u00e7inde veya sanal host yap\u0131land\u0131rma dosyalar\u0131n\u0131zda (<code>\/etc\/apache2\/sites-available\/*.conf<\/code>) <code>Directory<\/code> blo\u011fu i\u00e7inde <code>AllowOverride<\/code> y\u00f6nergesi ile verilir.<\/p>\n<p>Varsay\u0131lan olarak, Apache&#8217;nin k\u00f6k dizini olan <code>\/var\/www\/html<\/code> i\u00e7in <code>AllowOverride None<\/code> ayar\u0131 mevcuttur. Bu, <code>.htaccess<\/code> dosyalar\u0131n\u0131n bu dizinde ve alt dizinlerinde dikkate al\u0131nmayaca\u011f\u0131 anlam\u0131na gelir. Bu ayar\u0131 <code>AllowOverride All<\/code> olarak de\u011fi\u015ftirmemiz gerekir:<\/p>\n<p>1.  Apache ana yap\u0131land\u0131rma dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/apache2\/apache2.conf<\/code><\/pre>\n<p>2.  Dosya i\u00e7inde <code><Directory \/var\/www\/><\/code> blo\u011funu bulun. \u0130\u00e7indeki <code>AllowOverride None<\/code> sat\u0131r\u0131n\u0131 <code>AllowOverride All<\/code> olarak de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-apache\"><Directory \/var\/www\/>\n            Options Indexes FollowSymLinks\n            AllowOverride All   # Buray\u0131 None'dan All olarak de\u011fi\u015ftirin\n            Require all granted\n    <\/Directory><\/code><\/pre>\n<p>    E\u011fer web siteniz <code>\/var\/www\/html<\/code> d\u0131\u015f\u0131nda ba\u015fka bir dizinde ise, o dizin i\u00e7in de benzer bir <code>Directory<\/code> blo\u011fu olu\u015fturman\u0131z veya mevcut blo\u011fu d\u00fczenlemeniz gerekebilir. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-apache\"><Directory \/var\/www\/benim-sitem\/>\n            Options Indexes FollowSymLinks\n            AllowOverride All\n            Require all granted\n    <\/Directory><\/code><\/pre>\n<p>3.  De\u011fi\u015fiklikleri kaydedip kapat\u0131n (Nano&#8217;da <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code>).<br \/>\n4.  Apache yap\u0131land\u0131rmas\u0131nda s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo apache2ctl configtest<\/code><\/pre>\n<p>    <code>Syntax OK<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 almal\u0131s\u0131n\u0131z.<br \/>\n5.  Apache servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<p>Art\u0131k <code>\/var\/www\/html<\/code> dizininde (veya ayarlad\u0131\u011f\u0131n\u0131z ba\u015fka bir dizinde) <code>.htaccess<\/code> dosyalar\u0131 olu\u015fturabilir ve <code>mod_rewrite<\/code> kurallar\u0131n\u0131z\u0131 buraya yazabilirsiniz.<\/p>\n<h2>mod_rewrite Temel Kurallar\u0131 ve S\u00f6zdizimi<\/h2>\n<p><code>mod_rewrite<\/code> kurallar\u0131 genellikle \u00fc\u00e7 ana y\u00f6nergeden olu\u015fur: <code>RewriteEngine<\/code>, <code>RewriteCond<\/code> ve <code>RewriteRule<\/code>. Bu y\u00f6nergeler, karma\u015f\u0131k URL yeniden yazma mant\u0131klar\u0131 olu\u015fturmak i\u00e7in bir araya getirilir.<\/p>\n<h3>RewriteEngine<\/h3>\n<p>Bu y\u00f6nerge, <code>mod_rewrite<\/code> motorunu a\u00e7\u0131p kapatmak i\u00e7in kullan\u0131l\u0131r. Kurallar\u0131n\u0131z\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in mutlaka <code>On<\/code> olarak ayarlanmal\u0131d\u0131r.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong><\/p>\n<pre><code class=\"language-apache\">RewriteEngine On\n<h2>veya<\/h2>\nRewriteEngine Off<\/code><\/pre>\n<p>Genellikle <code>.htaccess<\/code> dosyas\u0131n\u0131n veya sanal host yap\u0131land\u0131rma blo\u011funun en ba\u015f\u0131na yerle\u015ftirilir.<\/p>\n<h3>RewriteCond<\/h3>\n<p><code>RewriteCond<\/code> (Rewrite Condition &#8211; Yeniden Yazma Ko\u015fulu), bir <code>RewriteRule<\/code>&#8216;\u0131n uygulanabilmesi i\u00e7in kar\u015f\u0131lanmas\u0131 gereken ko\u015fullar\u0131 tan\u0131mlar. Bir <code>RewriteRule<\/code>&#8216;dan \u00f6nce birden fazla <code>RewriteCond<\/code> y\u00f6nergesi tan\u0131mlanabilir. T\u00fcm ko\u015fullar varsay\u0131lan olarak <code>AND<\/code> mant\u0131\u011f\u0131yla birle\u015ftirilir, ancak <code>[OR]<\/code> bayra\u011f\u0131 ile bu davran\u0131\u015f de\u011fi\u015ftirilebilir.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong><\/p>\n<pre><code class=\"language-apache\">RewriteCond TestString CondPattern [Flags]<\/code><\/pre>\n<p>*   <strong><code>TestString<\/code>:<\/strong> Kontrol edilecek dize. Bu genellikle sunucu de\u011fi\u015fkenleri (<code>%{REQUEST_FILENAME}<\/code>, <code>%{HTTP_HOST}<\/code>, <code>%{HTTPS}<\/code>, <code>%{QUERY_STRING}<\/code> vb.) veya geriye d\u00f6n\u00fck referanslar (<code>%1<\/code>, <code>%2<\/code> vb.) i\u00e7erir.<br \/>\n*   <strong><code>CondPattern<\/code>:<\/strong> <code>TestString<\/code> ile e\u015fle\u015fecek d\u00fczenli ifade (regex) deseni.<br \/>\n*   <strong><code>[Flags]<\/code>:<\/strong> Ko\u015fulun davran\u0131\u015f\u0131n\u0131 de\u011fi\u015ftiren iste\u011fe ba\u011fl\u0131 bayraklar.<\/p>\n<p><strong>Yayg\u0131n <code>RewriteCond<\/code> Bayraklar\u0131:<\/strong><br \/>\n*   <strong><code>[NC]<\/code> (No Case):<\/strong> Desen e\u015fle\u015fmesini b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z yapar.<br \/>\n*   <strong><code>[OR]<\/code> (Or):<\/strong> Bu ko\u015fulu bir sonraki <code>RewriteCond<\/code> ile <code>OR<\/code> mant\u0131\u011f\u0131yla birle\u015ftirir. Aksi takdirde varsay\u0131lan <code>AND<\/code> kullan\u0131l\u0131r.<br \/>\n*   <strong><code>[L]<\/code> (Last):<\/strong> Bu kural e\u015fle\u015firse, ba\u015fka hi\u00e7bir kural\u0131n i\u015flenmemesini sa\u011flar.<\/p>\n<p><strong>\u00d6rnekler:<\/strong><br \/>\n*   Host ad\u0131n\u0131n <code>www.example.com<\/code> olup olmad\u0131\u011f\u0131n\u0131 kontrol etme:<\/p>\n<pre><code class=\"language-apache\">RewriteCond %{HTTP_HOST} ^www\\.example\\.com$ [NC]<\/code><\/pre>\n<p>*   \u0130stenen dosyan\u0131n var olup olmad\u0131\u011f\u0131n\u0131 kontrol etme:<\/p>\n<pre><code class=\"language-apache\">RewriteCond %{REQUEST_FILENAME} !-f<\/code><\/pre>\n<p>    (<code>!-f<\/code> &#8220;dosya de\u011filse&#8221; anlam\u0131na gelir. <code>-f<\/code> &#8220;dosya ise&#8221;, <code>-d<\/code> &#8220;dizin ise&#8221; anlam\u0131na gelir.)<br \/>\n*   HTTPS \u00fczerinden gelip gelmedi\u011fini kontrol etme:<\/p>\n<pre><code class=\"language-apache\">RewriteCond %{HTTPS} off<\/code><\/pre>\n<h3>RewriteRule<\/h3>\n<p><code>RewriteRule<\/code> (Yeniden Yazma Kural\u0131), as\u0131l yeniden yazma veya y\u00f6nlendirme i\u015flemini ger\u00e7ekle\u015ftiren y\u00f6nergedir. Bir veya daha fazla <code>RewriteCond<\/code> taraf\u0131ndan belirlenen ko\u015fullar kar\u015f\u0131land\u0131\u011f\u0131nda tetiklenir.<\/p>\n<p><strong>S\u00f6zdizimi:<\/strong><\/p>\n<pre><code class=\"language-apache\">RewriteRule Pattern Substitution [Flags]<\/code><\/pre>\n<p>*   <strong><code>Pattern<\/code>:<\/strong> Gelen URL yolunun (domain ve query string hari\u00e7) e\u015fle\u015ftirilece\u011fi d\u00fczenli ifade deseni. Bu desen, <code>RewriteCond<\/code>&#8216;daki <code>CondPattern<\/code>&#8216;dan farkl\u0131 olarak, URL&#8217;nin kendisini hedefler.<br \/>\n*   <strong><code>Substitution<\/code>:<\/strong> <code>Pattern<\/code> ile e\u015fle\u015fen URL&#8217;nin yerine ge\u00e7ecek yeni URL. Bu bir dosya yolu, tam bir URL veya bir sunucu de\u011fi\u015fkeni olabilir. Yakalanan gruplar (<code>$1<\/code>, <code>$2<\/code> vb.) burada kullan\u0131labilir.<br \/>\n*   <strong><code>[Flags]<\/code>:<\/strong> Kural\u0131n davran\u0131\u015f\u0131n\u0131 de\u011fi\u015ftiren iste\u011fe ba\u011fl\u0131 bayraklar.<\/p>\n<p><strong>Yayg\u0131n <code>RewriteRule<\/code> Bayraklar\u0131:<\/strong><br \/>\n*   <strong><code>[L]<\/code> (Last):<\/strong> Bu kural e\u015fle\u015firse, Apache&#8217;nin di\u011fer t\u00fcm <code>RewriteRule<\/code>&#8216;lar\u0131 i\u015flemeyi durdurmas\u0131n\u0131 sa\u011flar. Bu, genellikle bir kural\u0131n nihai hedef oldu\u011fu durumlarda kullan\u0131l\u0131r.<br \/>\n*   <strong><code>[R]<\/code> veya <code>[R=301]<\/code> (Redirect):<\/strong> Taray\u0131c\u0131ya bir HTTP y\u00f6nlendirmesi (varsay\u0131lan olarak 302 Temporary Redirect) g\u00f6nderir. <code>[R=301]<\/code> kal\u0131c\u0131 bir y\u00f6nlendirme (Permanent Redirect) i\u00e7in kullan\u0131l\u0131r ve SEO a\u00e7\u0131s\u0131ndan \u00f6nemlidir.<br \/>\n*   <strong><code>[NC]<\/code> (No Case):<\/strong> Desen e\u015fle\u015fmesini b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z yapar.<br \/>\n*   <strong><code>[QSA]<\/code> (Query String Append):<\/strong> Orijinal iste\u011fin sorgu dizesini (query string) yeniden yaz\u0131lan URL&#8217;ye ekler. Bu bayrak \u00e7ok s\u0131k kullan\u0131l\u0131r, \u00e7\u00fcnk\u00fc aksi takdirde sorgu dizeleri genellikle kaybolur.<br \/>\n*   <strong><code>[P]<\/code> (Proxy):<\/strong> Yeniden yaz\u0131lan URL&#8217;yi dahili olarak bir proxy iste\u011fi olarak i\u015fler. <code>mod_proxy<\/code> mod\u00fcl\u00fcn\u00fcn etkinle\u015ftirilmi\u015f olmas\u0131n\u0131 gerektirir.<br \/>\n*   <strong><code>[F]<\/code> (Forbidden):<\/strong> E\u015fle\u015fen URL&#8217;ye eri\u015fimi engeller ve 403 Forbidden hatas\u0131 d\u00f6nd\u00fcr\u00fcr.<br \/>\n*   <strong><code>[E=VAR:VALUE]<\/code> (Environment Variable):<\/strong> Belirli bir ortam de\u011fi\u015fkenini ayarlar.<\/p>\n<h3>Regex Temelleri<\/h3>\n<p><code>mod_rewrite<\/code>&#8216;\u0131 etkin bir \u015fekilde kullanmak i\u00e7in temel d\u00fczenli ifade (regex) bilgisine sahip olmak \u00f6nemlidir. \u0130\u015fte baz\u0131 temel regex karakterleri:<br \/>\n*   <strong><code>.<\/code> (Nokta):<\/strong> Herhangi bir karakterle e\u015fle\u015fir (sat\u0131r sonu hari\u00e7).<br \/>\n<em>   <strong><code><\/em><\/code> (Y\u0131ld\u0131z):<\/strong> \u00d6nceki karakterin s\u0131f\u0131r veya daha fazla tekrar\u0131yla e\u015fle\u015fir.<br \/>\n*   <strong><code>+<\/code> (Art\u0131):<\/strong> \u00d6nceki karakterin bir veya daha fazla tekrar\u0131yla e\u015fle\u015fir.<br \/>\n*   <strong><code>?<\/code> (Soru \u0130\u015fareti):<\/strong> \u00d6nceki karakterin s\u0131f\u0131r veya bir tekrar\u0131yla e\u015fle\u015fir.<br \/>\n*   <strong><code>^<\/code> (\u015eapka):<\/strong> Dizinin ba\u015flang\u0131c\u0131yla e\u015fle\u015fir.<br \/>\n*   <strong><code>$<\/code> (Dolar):<\/strong> Dizinin sonuyla e\u015fle\u015fir.<br \/>\n*   <strong><code>[]<\/code> (K\u00f6\u015feli Parantez):<\/strong> K\u00f6\u015feli parantez i\u00e7indeki herhangi bir karakterle e\u015fle\u015fir (\u00f6rne\u011fin, <code>[a-z]<\/code> k\u00fc\u00e7\u00fck harflerle, <code>[0-9]<\/code> rakamlarla e\u015fle\u015fir).<br \/>\n*   <strong><code>()<\/code> (Parantez):<\/strong> Bir grubu yakalar. Yakalanan gruplara <code>RewriteRule<\/code> i\u00e7inde <code>$1<\/code>, <code>$2<\/code> vb. ile eri\u015filir. <code>RewriteCond<\/code> i\u00e7inde ise <code>%1<\/code>, <code>%2<\/code> vb. ile eri\u015filir.<br \/>\n*   <strong><code>|<\/code> (Dikey \u00c7izgi):<\/strong> <code>OR<\/code> operat\u00f6r\u00fc (\u00f6rne\u011fin, <code>(elma|armut)<\/code>).<br \/>\n*   <strong><code>\\<\/code> (Ters E\u011fik \u00c7izgi):<\/strong> \u00d6zel karakterleri ka\u00e7\u0131\u015f karakteri olarak kullan\u0131r (\u00f6rne\u011fin, <code>\\.<\/code> ger\u00e7ek bir nokta karakteriyle e\u015fle\u015fir, <code>\\s<\/code> bo\u015fluk karakteriyle e\u015fle\u015fir).<\/p>\n<h2>Yayg\u0131n Kullan\u0131m Senaryolar\u0131 ve \u00d6rnekler<\/h2>\n<p>\u015eimdi <code>mod_rewrite<\/code>&#8216;\u0131n g\u00fcc\u00fcn\u00fc g\u00f6steren baz\u0131 pratik \u00f6rneklere g\u00f6z atal\u0131m. Bu \u00f6rnekler genellikle <code>.htaccess<\/code> dosyas\u0131na yaz\u0131l\u0131r, ancak ayn\u0131 kurallar sanal host yap\u0131land\u0131rmas\u0131na da entegre edilebilir.<\/p>\n<h3>&#8220;Pretty URLs&#8221; Olu\u015fturma (Anlaml\u0131 URL&#8217;ler)<\/h3>\n<p>Bu, <code>mod_rewrite<\/code>&#8216;\u0131n en yayg\u0131n kullan\u0131m alanlar\u0131ndan biridir. Dinamik i\u00e7eri\u011fe sahip sayfalar\u0131n URL&#8217;lerini daha okunabilir ve SEO dostu hale getiririz.<\/p>\n<p><strong>\u00d6rnek 1: \u00dcr\u00fcn ID&#8217;sini URL&#8217;ye Ta\u015f\u0131ma<\/strong><br \/>\n<code>example.com\/urun.php?id=123<\/code> yerine <code>example.com\/urun\/123<\/code> kullanmak.<\/p>\n<pre><code class=\"language-apache\"># .htaccess dosyas\u0131na\nRewriteEngine On\nRewriteRule ^urun\/([0-9]+)\/?$ urun.php?id=$1 [NC,L,QSA]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>^urun\/<\/code>: URL&#8217;nin <code>urun\/<\/code> ile ba\u015flad\u0131\u011f\u0131n\u0131 belirtir.<br \/>\n*   <code>([0-9]+)<\/code>: Bir veya daha fazla rakamdan olu\u015fan bir grubu yakalar. Bu yakalanan de\u011fer <code>urun.php<\/code>&#8216;ye <code>$1<\/code> olarak aktar\u0131l\u0131r.<br \/>\n*   <code>\/?<\/code>: \u0130ste\u011fe ba\u011fl\u0131 olarak sondaki e\u011fik \u00e7izgiyi e\u015fle\u015ftirir.<br \/>\n*   <code>urun.php?id=$1<\/code>: Yeniden yaz\u0131lan dahili URL.<br \/>\n*   <code>[NC,L,QSA]<\/code>: B\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z e\u015fle\u015fme (<code>NC<\/code>), bu kural e\u015fle\u015fti\u011finde di\u011fer kurallar\u0131 durdur (<code>L<\/code>), orijinal sorgu dizesini ekle (<code>QSA<\/code>).<\/p>\n<p><strong>\u00d6rnek 2: Kategori Ad\u0131n\u0131 URL&#8217;ye Ta\u015f\u0131ma<\/strong><br \/>\n<code>example.com\/kategori.php?ad=elektronik<\/code> yerine <code>example.com\/kategori\/elektronik<\/code> kullanmak.<\/p>\n<pre><code class=\"language-apache\">RewriteEngine On\nRewriteRule ^kategori\/([a-zA-Z0-9_-]+)\/?$ kategori.php?ad=$1 [NC,L,QSA]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>([a-zA-Z0-9_-]+)<\/code>: Harflerden, rakamlardan, alt \u00e7izgiden veya tireden olu\u015fan bir veya daha fazla karakter grubunu yakalar.<\/p>\n<h3>www Olmayan Adresleri www&#8217;ye Y\u00f6nlendirme (veya Tersini)<\/h3>\n<p>Web sitenizin tek bir kanonik URL&#8217;ye sahip olmas\u0131 SEO i\u00e7in \u00f6nemlidir. Genellikle <code>example.com<\/code> adresini <code>www.example.com<\/code> adresine y\u00f6nlendirmek tercih edilir.<\/p>\n<pre><code class=\"language-apache\"># www olmayan adresleri www'ye y\u00f6nlendirme\nRewriteEngine On\nRewriteCond %{HTTP_HOST} ^example\\.com [NC]\nRewriteRule ^(.*)$ http:\/\/www.example.com\/$1 [L,R=301,NC]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteCond %{HTTP_HOST} ^example\\.com [NC]<\/code>: Gelen iste\u011fin host ad\u0131n\u0131n <code>example.com<\/code> (veya b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z olarak <code>example.com<\/code>) olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<br \/>\n<em>   <code>RewriteRule ^(.<\/em>)$ http:\/\/www.example.com\/$1 [L,R=301,NC]<\/code>: E\u011fer ko\u015ful do\u011fruysa, t\u00fcm URL yolunu yakalar (<code>(.*)<\/code>) ve <code>http:\/\/www.example.com\/<\/code> adresine 301 kal\u0131c\u0131 y\u00f6nlendirme ile <code>$1<\/code> olarak ekler.<\/p>\n<p>Tersini yapmak isterseniz (<code>www.example.com<\/code> adresini <code>example.com<\/code> adresine y\u00f6nlendirme):<\/p>\n<pre><code class=\"language-apache\"># www olan adresleri www olmayana y\u00f6nlendirme\nRewriteEngine On\nRewriteCond %{HTTP_HOST} ^www\\.example\\.com [NC]\nRewriteRule ^(.*)$ http:\/\/example.com\/$1 [L,R=301,NC]<\/code><\/pre>\n<h3>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme<\/h3>\n<p>SSL\/TLS sertifikas\u0131 kurulu olan siteler i\u00e7in t\u00fcm trafi\u011fi g\u00fcvenli HTTPS protokol\u00fcne y\u00f6nlendirmek hem g\u00fcvenlik hem de SEO a\u00e7\u0131s\u0131ndan \u00e7ok \u00f6nemlidir.<\/p>\n<pre><code class=\"language-apache\"># HTTP'den HTTPS'ye y\u00f6nlendirme\nRewriteEngine On\nRewriteCond %{HTTPS} off\nRewriteRule ^(.*)$ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteCond %{HTTPS} off<\/code>: \u0130stek HTTPS \u00fczerinden gelmiyorsa (yani HTTP ise) ko\u015ful do\u011fru olur.<br \/>\n<em>   <code>RewriteRule ^(.<\/em>)$ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NC]<\/code>: T\u00fcm URL yolunu yakalar ve ayn\u0131 host ve URI ile HTTPS&#8217;ye 301 kal\u0131c\u0131 y\u00f6nlendirme yapar.<\/p>\n<h3>Dosya Uzant\u0131lar\u0131n\u0131 Gizleme<\/h3>\n<p><code>page.php<\/code> gibi URL&#8217;leri <code>page<\/code> olarak g\u00f6stermek, URL&#8217;leri daha temiz hale getirir.<\/p>\n<pre><code class=\"language-apache\"># .php uzant\u0131s\u0131n\u0131 gizleme\nRewriteEngine On\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule ^([^\\.]+)$ $1.php [NC,L]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteCond %{REQUEST_FILENAME} !-f<\/code>: \u0130stenen URI&#8217;nin fiziksel bir dosya olmad\u0131\u011f\u0131n\u0131 kontrol eder.<br \/>\n*   <code>RewriteCond %{REQUEST_FILENAME} !-d<\/code>: \u0130stenen URI&#8217;nin fiziksel bir dizin olmad\u0131\u011f\u0131n\u0131 kontrol eder. Bu iki ko\u015ful, ger\u00e7ek dosya veya dizin adlar\u0131n\u0131n yeniden yaz\u0131lmas\u0131n\u0131 engeller.<br \/>\n*   <code>RewriteRule ^([^\\.]+)$ $1.php [NC,L]<\/code>: Nokta i\u00e7ermeyen herhangi bir URL yolunu yakalar (<code>[^\\.]+<\/code>) ve sonuna <code>.php<\/code> ekleyerek dahili olarak yeniden yazar.<\/p>\n<h3>Belirli Dosyalar\u0131 veya Dizinleri Engelleme<\/h3>\n<p>Hassas dosyalara veya dizinlere do\u011frudan eri\u015fimi engellemek i\u00e7in <code>mod_rewrite<\/code> kullan\u0131labilir.<\/p>\n<p><strong>\u00d6rnek 1: <code>.htaccess<\/code> Dosyas\u0131na Eri\u015fimi Engelleme<\/strong><br \/>\nBu, genellikle varsay\u0131lan olarak zaten engellenmi\u015ftir, ancak ekstra g\u00fcvenlik i\u00e7in eklenebilir.<\/p>\n<pre><code class=\"language-apache\"># .htaccess dosyas\u0131na do\u011frudan eri\u015fimi engelleme\nRewriteEngine On\nRewriteRule ^\\.htaccess$ - [F]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteRule ^\\.htaccess$ - [F]<\/code>: URL&#8217;si <code>.htaccess<\/code> olan herhangi bir iste\u011fi 403 Forbidden hatas\u0131yla engeller. <code>-<\/code> hedef URL olmad\u0131\u011f\u0131 anlam\u0131na gelir, \u00e7\u00fcnk\u00fc sadece engellemek istiyoruz.<\/p>\n<p><strong>\u00d6rnek 2: Belirli Bir Dizin \u0130\u00e7eri\u011fine Eri\u015fimi Engelleme<\/strong><br \/>\n\u00d6rne\u011fin, <code>\/private<\/code> dizinine web \u00fczerinden eri\u015fimi engellemek.<\/p>\n<pre><code class=\"language-apache\"># \/private dizinine eri\u015fimi engelleme\nRewriteEngine On\nRewriteRule ^private\/.*$ - [F]<\/code><\/pre>\n<h3>Dizinlere Eri\u015fim Kontrol\u00fc (Front Controller Deseni)<\/h3>\n<p>Modern web \u00e7er\u00e7evelerinin \u00e7o\u011fu (Laravel, Symfony, CodeIgniter vb.) bir &#8220;front controller&#8221; deseni kullan\u0131r. Bu desende, t\u00fcm istekler tek bir ana PHP dosyas\u0131na (genellikle <code>index.php<\/code>) y\u00f6nlendirilir ve bu dosya iste\u011fi uygun denetleyiciye ve eyleme y\u00f6nlendirir.<\/p>\n<pre><code class=\"language-apache\"># Front Controller deseni i\u00e7in\nRewriteEngine On\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule ^(.*)$ index.php\/$1 [L]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   Bu kurallar, fiziksel olarak var olan bir dosya (<code>-f<\/code>) veya dizin (<code>-d<\/code>) istenmedi\u011fi s\u00fcrece, gelen t\u00fcm istekleri <code>index.php<\/code> dosyas\u0131na y\u00f6nlendirir. <code>$1<\/code> yakalanan URL yolunu <code>index.php<\/code>&#8216;ye parametre olarak iletir. Baz\u0131 \u00e7er\u00e7eveler <code>index.php?url=$1<\/code> \u015feklinde sorgu dizesi kullanabilir.<\/p>\n<h3>Eski URL&#8217;leri Yeni URL&#8217;lere Y\u00f6nlendirme (301 Kal\u0131c\u0131 Y\u00f6nlendirme)<\/h3>\n<p>Bir web sitesinin yap\u0131s\u0131 de\u011fi\u015fti\u011finde veya sayfalar ta\u015f\u0131nd\u0131\u011f\u0131nda, eski URL&#8217;lerden yeni URL&#8217;lere 301 kal\u0131c\u0131 y\u00f6nlendirmeler yapmak SEO i\u00e7in hayati \u00f6neme sahiptir. Bu, arama motorlar\u0131n\u0131n eski sayfan\u0131n de\u011ferini yeni sayfaya aktarmas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-apache\"># Eski URL'den yeni URL'ye 301 y\u00f6nlendirme\nRewriteEngine On\nRewriteRule ^eski-sayfa\\.html$ \/yeni-sayfa.html [L,R=301]\nRewriteRule ^eski-dizin\/(.*)$ \/yeni-dizin\/$1 [L,R=301]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   \u0130lk kural, <code>eski-sayfa.html<\/code> adresine gelen bir iste\u011fi <code>yeni-sayfa.html<\/code> adresine kal\u0131c\u0131 olarak y\u00f6nlendirir.<br \/>\n*   \u0130kinci kural, <code>eski-dizin<\/code> alt\u0131ndaki t\u00fcm URL&#8217;leri <code>yeni-dizin<\/code> alt\u0131na kal\u0131c\u0131 olarak y\u00f6nlendirir, URL yolunun geri kalan\u0131n\u0131 korur.<\/p>\n<h3>IP Adresine G\u00f6re Eri\u015fim Engelleme<\/h3>\n<p>Belirli IP adreslerinden gelen eri\u015fimi engellemek i\u00e7in <code>mod_rewrite<\/code> kullan\u0131labilir.<\/p>\n<pre><code class=\"language-apache\"># Belirli bir IP adresinden gelen eri\u015fimi engelleme\nRewriteEngine On\nRewriteCond %{REMOTE_ADDR} ^192\\.168\\.1\\.100$\nRewriteRule ^.*$ - [F]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteCond %{REMOTE_ADDR} ^192\\.168\\.1\\.100$<\/code>: \u0130ste\u011fin geldi\u011fi IP adresinin 192.168.1.100 olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<br \/>\n<em>   <code>RewriteRule ^.<\/em>$ - [F]<\/code>: E\u011fer IP e\u015fle\u015firse, t\u00fcm istekleri 403 Forbidden hatas\u0131yla engeller.<\/p>\n<h2>mod_rewrite Hata Ay\u0131klama (Debugging)<\/h2>\n<p><code>mod_rewrite<\/code> kurallar\u0131 karma\u015f\u0131k olabilir ve beklenen \u015fekilde \u00e7al\u0131\u015fmayabilir. Bu durumda, hata ay\u0131klama yetenekleri b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. Apache 2.4 ve sonraki s\u00fcr\u00fcmlerde (<code>Ubuntu 16.04'te kullan\u0131lan s\u00fcr\u00fcm<\/code>), <code>RewriteLog<\/code> ve <code>RewriteLogLevel<\/code> y\u00f6nergeleri kald\u0131r\u0131lm\u0131\u015ft\u0131r. Bunun yerine, Apache&#8217;nin genel <code>LogLevel<\/code> y\u00f6nergesi kullan\u0131l\u0131r.<\/p>\n<h3>LogLevel debug rewrite:trace8<\/h3>\n<p><code>mod_rewrite<\/code> ile ilgili ayr\u0131nt\u0131l\u0131 g\u00fcnl\u00fck kayd\u0131 almak i\u00e7in, sanal host yap\u0131land\u0131rma dosyan\u0131za veya <code>\/etc\/apache2\/apache2.conf<\/code> dosyas\u0131na a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-apache\">LogLevel debug rewrite:trace8<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>LogLevel debug<\/code>: Genel hata ay\u0131klama d\u00fczeyini <code>debug<\/code> olarak ayarlar.<br \/>\n*   <code>rewrite:trace8<\/code>: <code>mod_rewrite<\/code> mod\u00fcl\u00fc i\u00e7in \u00f6zel olarak <code>trace8<\/code> seviyesinde (en y\u00fcksek detay seviyesi) g\u00fcnl\u00fck kayd\u0131 tutulmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Bu ayar\u0131 ekledikten sonra Apache&#8217;yi yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<p>Hata g\u00fcnl\u00fcklerini (<code>\/var\/log\/apache2\/error.log<\/code>) izleyerek <code>mod_rewrite<\/code> kurallar\u0131n\u0131n nas\u0131l i\u015flendi\u011fini g\u00f6rebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/apache2\/error.log<\/code><\/pre>\n<p>Bu g\u00fcnl\u00fckler, hangi kurallar\u0131n uyguland\u0131\u011f\u0131n\u0131, hangi ko\u015fullar\u0131n e\u015fle\u015fti\u011fini veya e\u015fle\u015fmedi\u011fini ve URL&#8217;nin nas\u0131l yeniden yaz\u0131ld\u0131\u011f\u0131n\u0131 ad\u0131m ad\u0131m g\u00f6sterir. Bu bilgiler, kurallar\u0131n\u0131zdaki hatalar\u0131 tespit etmek i\u00e7in paha bi\u00e7ilmezdir.<\/p>\n<h3>apache2ctl configtest<\/h3>\n<p><code>mod_rewrite<\/code> kurallar\u0131n\u0131z\u0131 veya Apache yap\u0131land\u0131rman\u0131z\u0131 de\u011fi\u015ftirdikten sonra, Apache&#8217;yi yeniden ba\u015flatmadan \u00f6nce s\u00f6zdizimi hatalar\u0131n\u0131 kontrol etmek her zaman iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo apache2ctl configtest<\/code><\/pre>\n<p>E\u011fer <code>Syntax OK<\/code> \u00e7\u0131kt\u0131s\u0131n\u0131 al\u0131rsan\u0131z, yap\u0131land\u0131rman\u0131zda bir s\u00f6zdizimi hatas\u0131 yoktur. Aksi takdirde, hata mesaj\u0131 size sorunun nerede oldu\u011funu g\u00f6sterecektir.<\/p>\n<h2>Performans ve G\u00fcvenlik Hususlar\u0131<\/h2>\n<p><code>mod_rewrite<\/code> g\u00fc\u00e7l\u00fc bir ara\u00e7 olsa da, yanl\u0131\u015f kullan\u0131m\u0131 performans\u0131 d\u00fc\u015f\u00fcrebilir veya g\u00fcvenlik a\u00e7\u0131klar\u0131 olu\u015fturabilir.<\/p>\n<h3>.htaccess vs. Sunucu Konfig\u00fcrasyonu<\/h3>\n<p>Daha \u00f6nce de belirtildi\u011fi gibi, <code>.htaccess<\/code> dosyalar\u0131 her gelen istekte Apache taraf\u0131ndan aran\u0131r ve okunur. Bu, \u00f6zellikle y\u00fcksek trafikli sitelerde \u00f6nemli bir performans d\u00fc\u015f\u00fc\u015f\u00fcne neden olabilir. M\u00fcmk\u00fcnse, <code>mod_rewrite<\/code> kurallar\u0131n\u0131z\u0131 sunucu yap\u0131land\u0131rma dosyalar\u0131n\u0131za (<code>\/etc\/apache2\/sites-available\/*.conf<\/code> i\u00e7indeki sanal host yap\u0131land\u0131rmalar\u0131) yerle\u015ftirmeniz \u00f6nerilir. Bu, Apache&#8217;nin kurallar\u0131 yaln\u0131zca bir kez y\u00fcklemesini ve \u00f6nbelle\u011fe almas\u0131n\u0131 sa\u011flar, b\u00f6ylece her istekte dosya okuma y\u00fck\u00fcnden ka\u00e7\u0131n\u0131l\u0131r.<\/p>\n<p>E\u011fer <code>.htaccess<\/code> kullanmak zorundaysan\u0131z (\u00f6rne\u011fin payla\u015f\u0131ml\u0131 hosting ortam\u0131nda), kurallar\u0131 m\u00fcmk\u00fcn oldu\u011funca basit tutmaya \u00e7al\u0131\u015f\u0131n ve \u00e7ok fazla <code>RewriteCond<\/code> veya karma\u015f\u0131k regex desenlerinden ka\u00e7\u0131n\u0131n.<\/p>\n<h3>Karma\u015f\u0131k Regex Kullan\u0131m\u0131n\u0131n Etkisi<\/h3>\n<p>D\u00fczenli ifadeler g\u00fc\u00e7l\u00fcd\u00fcr, ancak ayn\u0131 zamanda i\u015flemci yo\u011fun olabilir. \u00c7ok karma\u015f\u0131k veya verimsiz yaz\u0131lm\u0131\u015f regex desenleri, her istekte Apache&#8217;nin daha fazla CPU d\u00f6ng\u00fcs\u00fc harcamas\u0131na neden olabilir. Kurallar\u0131n\u0131z\u0131 yazarken m\u00fcmk\u00fcn oldu\u011funca basit ve optimize edilmi\u015f regex desenleri kullanmaya \u00f6zen g\u00f6sterin. Testler yaparak performans \u00fczerindeki etkilerini g\u00f6zlemleyin.<\/p>\n<h3>G\u00fcvenlik Riskleri<\/h3>\n<p>Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f <code>mod_rewrite<\/code> kurallar\u0131, sitenizde g\u00fcvenlik a\u00e7\u0131klar\u0131na yol a\u00e7abilir. \u00d6rne\u011fin:<br \/>\n*   <strong>A\u00e7\u0131k Y\u00f6nlendirmeler:<\/strong> Kullan\u0131c\u0131 girdisini do\u011frudan bir <code>RewriteRule<\/code>&#8216;da hedef URL olarak kullanmak, sald\u0131rganlar\u0131n sitenizi kullanarak kullan\u0131c\u0131lar\u0131 k\u00f6t\u00fc ama\u00e7l\u0131 sitelere y\u00f6nlendirmesine izin verebilir. Her zaman kullan\u0131c\u0131 girdisini dikkatlice do\u011frulay\u0131n ve filtreleyin.<br \/>\n*   <strong>Bilgi S\u0131z\u0131nt\u0131s\u0131:<\/strong> Yanl\u0131\u015fl\u0131kla hassas dosyalar\u0131n veya dizinlerin do\u011frudan eri\u015fime a\u00e7\u0131lmas\u0131.<br \/>\n*   <strong>DoS Sald\u0131r\u0131lar\u0131:<\/strong> Sonsuz y\u00f6nlendirme d\u00f6ng\u00fcleri veya \u00e7ok karma\u015f\u0131k regex&#8217;ler, sunucunuzu DoS (Denial of Service) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 savunmas\u0131z hale getirebilir. <code>[L]<\/code> (Last) bayra\u011f\u0131n\u0131 do\u011fru yerlerde kullanarak sonsuz d\u00f6ng\u00fcleri \u00f6nleyin.<\/p>\n<p>Herhangi bir <code>mod_rewrite<\/code> kural\u0131 uygulamadan \u00f6nce, etkilerini dikkatlice test etmek ve g\u00fcvenlik a\u00e7\u0131s\u0131ndan g\u00f6zden ge\u00e7irmek kritik \u00f6neme sahiptir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Apache&#8217;nin <code>mod_rewrite<\/code> mod\u00fcl\u00fc, web geli\u015ftiricilerine ve sistem y\u00f6neticilerine URL&#8217;leri manip\u00fcle etme konusunda inan\u0131lmaz bir g\u00fc\u00e7 ve esneklik sunar. Ubuntu 16.04 \u00fczerinde Apache 2.4 ile \u00e7al\u0131\u015f\u0131rken, bu mod\u00fcl\u00fc kullanarak temiz ve anlaml\u0131 URL&#8217;ler olu\u015fturabilir, SEO&#8217;yu iyile\u015ftirebilir, kullan\u0131c\u0131 deneyimini zenginle\u015ftirebilir ve web uygulamalar\u0131n\u0131z\u0131n altyap\u0131s\u0131n\u0131 daha esnek hale getirebilirsiniz.<\/p>\n<p>Bu makalede, <code>mod_rewrite<\/code>&#8216;\u0131n temel prensiplerini, Ubuntu 16.04 ortam\u0131nda nas\u0131l kurulup etkinle\u015ftirilece\u011fini, <code>RewriteEngine<\/code>, <code>RewriteCond<\/code> ve <code>RewriteRule<\/code> gibi ana y\u00f6nergelerin s\u00f6zdizimini ve yayg\u0131n kullan\u0131m senaryolar\u0131n\u0131 detayl\u0131 \u00f6rneklerle ele ald\u0131k. Ayr\u0131ca, hata ay\u0131klama teknikleri ve performans ile g\u00fcvenlik hususlar\u0131 hakk\u0131nda \u00f6nemli bilgiler payla\u015ft\u0131k.<\/p>\n<p>Unutmay\u0131n ki <code>mod_rewrite<\/code>&#8216;\u0131n g\u00fcc\u00fc, ayn\u0131 zamanda karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 da beraberinde getirir. Kurallar\u0131n\u0131z\u0131 yazarken dikkatli olun, d\u00fczenli ifadeleri do\u011fru kullan\u0131n ve her zaman de\u011fi\u015fiklikleri test edin. M\u00fcmk\u00fcn oldu\u011funca sunucu yap\u0131land\u0131rma dosyalar\u0131n\u0131 tercih ederek performans\u0131 art\u0131r\u0131n ve gereksiz <code>.htaccess<\/code> kullan\u0131m\u0131ndan ka\u00e7\u0131n\u0131n. Bu rehber, <code>mod_rewrite<\/code> d\u00fcnyas\u0131na ad\u0131m atman\u0131z i\u00e7in sa\u011flam bir temel olu\u015fturacakt\u0131r. Uygulamal\u0131 deneyim kazand\u0131k\u00e7a, bu g\u00fc\u00e7l\u00fc mod\u00fcl\u00fcn t\u00fcm potansiyelini ke\u015ffedebileceksiniz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi\nGiri\u015f\n\u0130nternet d\u00fcnyas\u0131nda web sitelerinin kullan\u0131c\u0131 deneyimi, arama","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-38264","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi Giri\u015f \u0130nternet d\u00fcnyas\u0131nda web sitelerinin kullan\u0131c\u0131 deneyimi, arama\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-27T06:40:55+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi\",\"datePublished\":\"2026-01-27T06:40:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/\"},\"wordCount\":3170,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/\",\"name\":\"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-27T06:40:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi","og_description":"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi Giri\u015f \u0130nternet d\u00fcnyas\u0131nda web sitelerinin kullan\u0131c\u0131 deneyimi, arama","og_url":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-27T06:40:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi","datePublished":"2026-01-27T06:40:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/"},"wordCount":3170,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/","name":"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-27T06:40:55+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/apache-ve-ubuntu-16-04-uzerinde-mod_rewrite-ile-url-yeniden-yazma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Apache ve Ubuntu 16.04 \u00dczerinde mod_rewrite ile URL Yeniden Yazma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38264"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38264\/revisions"}],"predecessor-version":[{"id":38265,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38264\/revisions\/38265"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}