{"id":34324,"date":"2025-11-15T05:40:59","date_gmt":"2025-11-15T02:40:59","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=34324"},"modified":"2025-11-15T05:40:59","modified_gmt":"2025-11-15T02:40:59","slug":"centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/","title":{"rendered":"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<h2>Giri\u015f<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz web d\u00fcnyas\u0131nda, kullan\u0131c\u0131 deneyimi, arama motoru optimizasyonu (SEO) ve g\u00fcvenlik, bir web sitesinin ba\u015far\u0131s\u0131 i\u00e7in hayati \u00f6neme sahiptir. Bu hedeflere ula\u015fmada kritik bir rol oynayan ara\u00e7lardan biri de Apache HTTP Sunucusu&#8217;nun g\u00fc\u00e7l\u00fc mod\u00fcl\u00fc olan <code>mod_rewrite<\/code>&#8216;d\u0131r. <code>mod_rewrite<\/code>, URL&#8217;leri dinamik olarak yeniden yazarak, sunucuya gelen isteklerin farkl\u0131 bir adrese veya kayna\u011fa y\u00f6nlendirilmesini sa\u011flar. Bu sayede, karma\u015f\u0131k ve parametrelerle dolu URL&#8217;ler yerine, daha temiz, anlaml\u0131 ve kullan\u0131c\u0131 dostu URL&#8217;ler olu\u015fturulabilir. \u00d6rne\u011fin, <code>www.example.com\/urun.php?id=123<\/code> gibi bir adres, <code>www.example.com\/urun\/123<\/code> \u015feklinde \u00e7ok daha okunakl\u0131 ve ak\u0131lda kal\u0131c\u0131 hale getirilebilir.<\/p>\n<p>CentOS 7 gibi sunucu i\u015fletim sistemlerinde Apache ile <code>mod_rewrite<\/code>&#8216;\u0131 do\u011fru bir \u015fekilde kurmak ve yap\u0131land\u0131rmak, web uygulamalar\u0131n\u0131z\u0131n performans\u0131n\u0131, g\u00fcvenli\u011fini ve eri\u015filebilirli\u011fini art\u0131rman\u0131n temel ad\u0131mlar\u0131ndan biridir. Bu teknik makalede, CentOS 7 \u00fczerinde Apache i\u00e7in <code>mod_rewrite<\/code> mod\u00fcl\u00fcn\u00fcn nas\u0131l kurulaca\u011f\u0131n\u0131, etkinle\u015ftirilece\u011fini ve \u00e7e\u015fitli kullan\u0131m senaryolar\u0131 i\u00e7in nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Ayr\u0131ca, yayg\u0131n kar\u015f\u0131la\u015f\u0131lan sorunlar\u0131 giderme ve performans ipu\u00e7lar\u0131 hakk\u0131nda da bilgi verece\u011fiz.<\/p>\n<h2>\u00d6n Ko\u015fullar<\/h2>\n<p><code>mod_rewrite<\/code> kurulumuna ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olman\u0131z gerekmektedir:<\/p>\n<p>*   <strong>CentOS 7 \u0130\u015fletim Sistemi:<\/strong> Sunucunuzda CentOS 7&#8217;nin kurulu ve g\u00fcncel olmas\u0131.<br \/>\n*   <strong>Apache HTTP Sunucusu (httpd):<\/strong> Apache web sunucusunun kurulu ve \u00e7al\u0131\u015f\u0131r durumda olmas\u0131. E\u011fer kurulu de\u011filse, <code>sudo yum install httpd -y<\/code> komutu ile kurabilirsiniz. Kurulum sonras\u0131 <code>sudo systemctl start httpd<\/code> ve <code>sudo systemctl enable httpd<\/code> komutlar\u0131 ile ba\u015flat\u0131p otomatik ba\u015flamas\u0131n\u0131 sa\u011flay\u0131n.<br \/>\n*   <strong>SSH Eri\u015fimi:<\/strong> Sunucunuza SSH \u00fczerinden eri\u015febiliyor olman\u0131z.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Kurulum ve yap\u0131land\u0131rma ad\u0131mlar\u0131 i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131.<br \/>\n*   <strong>Temel Linux Komut Sat\u0131r\u0131 Bilgisi:<\/strong> Dosya d\u00fczenleme, servis y\u00f6netimi gibi temel komut sat\u0131r\u0131 i\u015flemlerine a\u015fina olmak.<\/p>\n<h2>Apache ve mod_rewrite Durumunu Kontrol Etme<\/h2>\n<p><code>mod_rewrite<\/code> yap\u0131land\u0131rmas\u0131na ba\u015flamadan \u00f6nce, Apache servisinin \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve <code>mod_rewrite<\/code> mod\u00fcl\u00fcn\u00fcn halihaz\u0131rda y\u00fckl\u00fc olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek \u00f6nemlidir.<\/p>\n<p>\u0130lk olarak, Apache HTTP sunucusunun durumunu kontrol edelim:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status httpd<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>Active: active (running)<\/code> ifadesini g\u00f6rmeniz gerekmektedir. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa, <code>sudo systemctl start httpd<\/code> komutu ile ba\u015flat\u0131n.<\/p>\n<p>Ard\u0131ndan, <code>mod_rewrite<\/code> mod\u00fcl\u00fcn\u00fcn Apache taraf\u0131ndan y\u00fcklenip y\u00fcklenmedi\u011fini kontrol edelim. \u00c7o\u011fu CentOS 7 Apache kurulumunda <code>mod_rewrite<\/code> varsay\u0131lan olarak gelir, ancak etkinle\u015ftirilmesi gerekebilir.<\/p>\n<pre><code class=\"language-bash\">sudo httpd -M | grep rewrite_module<\/code><\/pre>\n<p>E\u011fer \u00e7\u0131kt\u0131 olarak <code>rewrite_module (shared)<\/code> gibi bir sat\u0131r g\u00f6r\u00fcyorsan\u0131z, <code>mod_rewrite<\/code> mod\u00fcl\u00fc zaten y\u00fckl\u00fc ve Apache taraf\u0131ndan tan\u0131n\u0131yor demektir. Bu durumda, bir sonraki ad\u0131ma ge\u00e7ebilirsiniz. E\u011fer herhangi bir \u00e7\u0131kt\u0131 g\u00f6rmezseniz veya mod\u00fcl\u00fcn y\u00fckl\u00fc olmad\u0131\u011f\u0131n\u0131 d\u00fc\u015f\u00fcn\u00fcyorsan\u0131z, bir sonraki ad\u0131ma ge\u00e7erek etkinle\u015ftirme i\u015flemini ger\u00e7ekle\u015ftirmemiz gerekecektir.<\/p>\n<h2>mod_rewrite Mod\u00fcl\u00fcn\u00fc Etkinle\u015ftirme (Gerekliyse)<\/h2>\n<p>E\u011fer \u00f6nceki ad\u0131mda <code>rewrite_module<\/code>&#8216;\u0131 g\u00f6remediyseniz veya emin olmak istiyorsan\u0131z, Apache&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131na veya mod\u00fcl yap\u0131land\u0131rma dizinine bakmam\u0131z gerekmektedir.<\/p>\n<p>Apache&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/httpd\/conf\/httpd.conf<\/code> konumundad\u0131r. Ayr\u0131ca, mod\u00fcller genellikle <code>\/etc\/httpd\/conf.modules.d\/<\/code> dizinindeki <code>.conf<\/code> uzant\u0131l\u0131 dosyalarda tan\u0131mlan\u0131r.<\/p>\n<p>Tercih edilen yol, <code>mod_rewrite<\/code>&#8216;\u0131n <code>00-base.conf<\/code> veya benzeri bir dosyada tan\u0131ml\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmektir.<\/p>\n<pre><code class=\"language-bash\">grep -i \"rewrite_module\" \/etc\/httpd\/conf.modules.d\/*.conf<\/code><\/pre>\n<p>Bu komut, <code>rewrite_module<\/code> sat\u0131r\u0131n\u0131 arayacakt\u0131r. Genellikle \u015f\u00f6yle bir sat\u0131r bulacaks\u0131n\u0131z:<\/p>\n<pre><code class=\"language-\">LoadModule rewrite_module modules\/mod_rewrite.so<\/code><\/pre>\n<p>E\u011fer bu sat\u0131r\u0131 bulursan\u0131z ve ba\u015f\u0131nda <code>#<\/code> i\u015fareti yoksa (yani yorum sat\u0131r\u0131 de\u011filse), mod\u00fcl zaten etkinle\u015ftirilmi\u015ftir. E\u011fer sat\u0131r\u0131n ba\u015f\u0131nda <code>#<\/code> i\u015fareti varsa, bu i\u015fareti kald\u0131rarak mod\u00fcl\u00fc etkinle\u015ftirmeniz gerekir.<\/p>\n<p>E\u011fer bu sat\u0131r\u0131 hi\u00e7bir dosyada bulamazsan\u0131z, <code>\/etc\/httpd\/conf\/httpd.conf<\/code> dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7arak (\u00f6rne\u011fin <code>vi<\/code> veya <code>nano<\/code>) bu sat\u0131r\u0131 eklemeniz gerekebilir.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/httpd\/conf\/httpd.conf<\/code><\/pre>\n<p>Dosyay\u0131 a\u00e7t\u0131ktan sonra, <code>LoadModule<\/code> direktiflerinin bulundu\u011fu b\u00f6l\u00fcme giderek a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin veya yorum sat\u0131r\u0131 ise <code>#<\/code> i\u015faretini kald\u0131r\u0131n:<\/p>\n<pre><code class=\"language-apache\">LoadModule rewrite_module modules\/mod_rewrite.so<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra, Apache servisini yeniden ba\u015flatman\u0131z gerekmektedir ki de\u011fi\u015fiklikler uygulans\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart httpd<\/code><\/pre>\n<p>Yeniden ba\u015flatman\u0131n ard\u0131ndan, <code>sudo httpd -M | grep rewrite_module<\/code> komutunu tekrar \u00e7al\u0131\u015ft\u0131rarak mod\u00fcl\u00fcn ba\u015far\u0131yla y\u00fcklendi\u011fini teyit edebilirsiniz.<\/p>\n<h2>Apache Yap\u0131land\u0131rmas\u0131nda Rewrite Kurallar\u0131na \u0130zin Verme<\/h2>\n<p><code>mod_rewrite<\/code> mod\u00fcl\u00fcn\u00fc etkinle\u015ftirmek, URL yeniden yazma kurallar\u0131n\u0131 kullanabilmeniz i\u00e7in yeterli de\u011fildir. Apache&#8217;nin, <code>.htaccess<\/code> dosyalar\u0131 veya <code><Directory><\/code> bloklar\u0131 i\u00e7inde tan\u0131mlanan yeniden yazma kurallar\u0131n\u0131 i\u015flemesine izin vermesi gerekir. Bu izin, <code>AllowOverride<\/code> direktifi ile kontrol edilir.<\/p>\n<p>CentOS 7&#8217;de Apache&#8217;nin varsay\u0131lan yap\u0131land\u0131rmas\u0131nda, genellikle <code>\/var\/www\/html<\/code> dizini i\u00e7in <code>AllowOverride None<\/code> olarak ayarlanm\u0131\u015ft\u0131r. Bu ayar, ilgili dizin ve alt dizinlerdeki <code>.htaccess<\/code> dosyalar\u0131n\u0131n Apache taraf\u0131ndan dikkate al\u0131nmamas\u0131n\u0131 sa\u011flar. <code>mod_rewrite<\/code> kurallar\u0131n\u0131n \u00e7al\u0131\u015fabilmesi i\u00e7in bu de\u011feri en az\u0131ndan <code>AllowOverride FileInfo<\/code> veya <code>AllowOverride All<\/code> olarak de\u011fi\u015ftirmemiz gerekmektedir.<\/p>\n<p><strong><code>AllowOverride<\/code> Direktifi Nedir?<\/strong><br \/>\n<code>AllowOverride<\/code> direktifi, belirli bir dizin i\u00e7in <code>.htaccess<\/code> dosyalar\u0131nda hangi direktif t\u00fcrlerinin kullan\u0131labilece\u011fini belirler.<\/p>\n<p>*   <strong><code>AllowOverride None<\/code><\/strong>: <code>.htaccess<\/code> dosyalar\u0131 tamamen g\u00f6z ard\u0131 edilir. Performans a\u00e7\u0131s\u0131ndan en iyisidir, ancak esnekli\u011fi k\u0131s\u0131tlar.<br \/>\n*   <strong><code>AllowOverride All<\/code><\/strong>: T\u00fcm Apache direktifleri <code>.htaccess<\/code> dosyalar\u0131nda kullan\u0131labilir. En esnek se\u00e7enektir, ancak performans \u00fczerinde hafif bir etkisi olabilir ve g\u00fcvenlik riskleri ta\u015f\u0131yabilir (\u00f6zellikle payla\u015f\u0131ml\u0131 bar\u0131nd\u0131rma ortamlar\u0131nda).<br \/>\n*   <strong><code>AllowOverride FileInfo<\/code><\/strong>: <code>mod_rewrite<\/code> direktifleri (RewriteEngine, RewriteRule, RewriteCond), <code>ErrorDocument<\/code> ve <code>DefaultType<\/code> gibi dosya t\u00fcr\u00fc ve belge bilgisi ile ilgili direktiflerin kullan\u0131m\u0131na izin verir. <code>mod_rewrite<\/code> i\u00e7in genellikle yeterli ve \u00f6nerilen ayard\u0131r.<br \/>\n*   Di\u011fer se\u00e7enekler: <code>AuthConfig<\/code>, <code>Indexes<\/code>, <code>Limit<\/code>, <code>Options<\/code> belirli direktif t\u00fcrlerini etkinle\u015ftirir.<\/p>\n<p><strong>Yap\u0131land\u0131rma Dosyas\u0131n\u0131 D\u00fczenleme<\/strong><br \/>\nApache&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 olan <code>\/etc\/httpd\/conf\/httpd.conf<\/code> dosyas\u0131n\u0131 d\u00fczenlememiz gerekecek.<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/httpd\/conf\/httpd.conf<\/code><\/pre>\n<p>Dosyay\u0131 a\u00e7t\u0131ktan sonra, web sitenizin belge k\u00f6k dizinini (DocumentRoot) belirten <code><Directory><\/code> blo\u011funu bulman\u0131z gerekmektedir. \u00c7o\u011fu durumda bu <code>\/var\/www\/html<\/code> dizinidir.<\/p>\n<p>A\u015fa\u011f\u0131daki blo\u011fu aray\u0131n:<\/p>\n<pre><code class=\"language-apache\"><Directory \"\/var\/www\/html\">\n    AllowOverride None\n<\/Directory><\/code><\/pre>\n<p>Bu sat\u0131r\u0131 a\u015fa\u011f\u0131daki gibi de\u011fi\u015ftirin:<\/p>\n<pre><code class=\"language-apache\"><Directory \"\/var\/www\/html\">\n    AllowOverride All\n<\/Directory><\/code><\/pre>\n<p>veya sadece <code>mod_rewrite<\/code> i\u00e7in yeterli olan:<\/p>\n<pre><code class=\"language-apache\"><Directory \"\/var\/www\/html\">\n    AllowOverride FileInfo\n<\/Directory><\/code><\/pre>\n<p><strong>Sanal Host (Virtual Host) Yap\u0131land\u0131rmalar\u0131 \u0130\u00e7in<\/strong><br \/>\nE\u011fer web siteniz i\u00e7in bir sanal host yap\u0131land\u0131rmas\u0131 kullan\u0131yorsan\u0131z (ki bu genellikle tavsiye edilen bir y\u00f6ntemdir), bu de\u011fi\u015fikli\u011fi ilgili sanal host dosyas\u0131nda (\u00f6rne\u011fin <code>\/etc\/httpd\/conf.d\/vhost.conf<\/code> veya <code>\/etc\/httpd\/conf.d\/yourdomain.conf<\/code>) yapman\u0131z gerekecektir. Sanal host yap\u0131land\u0131rmas\u0131 genellikle a\u015fa\u011f\u0131daki gibi g\u00f6r\u00fcn\u00fcr:<\/p>\n<pre><code class=\"language-apache\"><VirtualHost *:80>\n    ServerName yourdomain.com\n    DocumentRoot \/var\/www\/html\/yourdomain\n\n    <Directory \"\/var\/www\/html\/yourdomain\">\n        AllowOverride All\n        Require all granted\n    <\/Directory>\n\n    ErrorLog \/var\/log\/httpd\/yourdomain-error.log\n    CustomLog \/var\/log\/httpd\/yourdomain-access.log combined\n<\/VirtualHost><\/code><\/pre>\n<p>Bu durumda, <code><Directory \"\/var\/www\/html\/yourdomain\"><\/code> blo\u011fu i\u00e7indeki <code>AllowOverride None<\/code> de\u011ferini <code>AllowOverride All<\/code> veya <code>AllowOverride FileInfo<\/code> olarak de\u011fi\u015ftirmelisiniz.<\/p>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra, Apache yap\u0131land\u0131rmas\u0131n\u0131n s\u00f6zdizimini kontrol etmek iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo apachectl configtest<\/code><\/pre>\n<p>E\u011fer \u00e7\u0131kt\u0131 <code>Syntax OK<\/code> ise, Apache servisini yeniden ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart httpd<\/code><\/pre>\n<p>Art\u0131k Apache, web sitenizin k\u00f6k dizinindeki <code>.htaccess<\/code> dosyalar\u0131nda veya ilgili <code><Directory><\/code> bloklar\u0131nda tan\u0131mlanan <code>mod_rewrite<\/code> kurallar\u0131n\u0131 i\u015fleyebilecektir.<\/p>\n<h2>.htaccess Dosyas\u0131 Olu\u015fturma ve Rewrite Kurallar\u0131 Yazma<\/h2>\n<p><code>mod_rewrite<\/code>&#8216;\u0131n g\u00fcc\u00fcn\u00fc kullanmak i\u00e7in web sitenizin belge k\u00f6k dizinine (DocumentRoot) bir <code>.htaccess<\/code> dosyas\u0131 olu\u015fturman\u0131z ve i\u00e7ine yeniden yazma kurallar\u0131n\u0131 yazman\u0131z gerekir. Belge k\u00f6k dizini genellikle <code>\/var\/www\/html<\/code> veya sanal host yap\u0131land\u0131rman\u0131za g\u00f6re de\u011fi\u015fen bir dizindir.<\/p>\n<p>\u00d6rnek olarak, <code>\/var\/www\/html<\/code> dizininde bir <code>.htaccess<\/code> dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo vi \/var\/www\/html\/.htaccess<\/code><\/pre>\n<p>Her <code>.htaccess<\/code> dosyas\u0131n\u0131n ba\u015f\u0131na <code>RewriteEngine On<\/code> direktifini eklemek zorunludur. Bu direktif, <code>mod_rewrite<\/code> motorunu etkinle\u015ftirir.<\/p>\n<pre><code class=\"language-apache\"># .htaccess i\u00e7eri\u011fi\nRewriteEngine On\n\n<h2>Di\u011fer Rewrite kurallar\u0131 buraya gelecek<\/code><\/pre>\n<\/h2>\n<p>\u015eimdi, yayg\u0131n kullan\u0131lan baz\u0131 <code>mod_rewrite<\/code> kurallar\u0131n\u0131 inceleyelim:<\/p>\n<h3>Kullan\u0131c\u0131 Dostu URL&#8217;ler (Friendly URLs)<\/h3>\n<p>Bu, <code>mod_rewrite<\/code>&#8216;\u0131n en yayg\u0131n kullan\u0131m alanlar\u0131ndan biridir. Dinamik bir sayfa adresini (\u00f6rne\u011fin, <code>urun.php?id=123<\/code>) daha temiz bir adrese (\u00f6rne\u011fin, <code>urun\/123<\/code>) d\u00f6n\u00fc\u015ft\u00fcrmek.<\/p>\n<pre><code class=\"language-apache\">RewriteEngine On\nRewriteRule ^urun\/([0-9]+)\/?$ urun.php?id=$1 [NC,L]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteRule<\/code>: Bir yeniden yazma kural\u0131 tan\u0131mlar.<br \/>\n*   <code>^urun\/([0-9]+)\/?$<\/code>: Gelen URL desenini (Pattern) tan\u0131mlayan d\u00fczenli ifadedir.<br \/>\n    *   <code>^<\/code>: Sat\u0131r\u0131n ba\u015flang\u0131c\u0131.<br \/>\n    *   <code>urun\/<\/code>: &#8220;urun\/&#8221; kelimesiyle e\u015fle\u015fir.<br \/>\n    *   <code>([0-9]+)<\/code>: Bir veya daha fazla rakamdan olu\u015fan bir grubu yakalar ve bunu <code>$1<\/code> de\u011fi\u015fkenine atar.<br \/>\n    *   <code>\/?<\/code>: \u0130ste\u011fe ba\u011fl\u0131 bir e\u011fik \u00e7izgi (slash) ile e\u015fle\u015fir.<br \/>\n    *   <code>$<\/code>: Sat\u0131r\u0131n sonu.<br \/>\n*   <code>urun.php?id=$1<\/code>: Hedef URL&#8217;dir (Substitution). Yakalanan rakam <code>$1<\/code> ile <code>urun.php<\/code> sayfas\u0131na <code>id<\/code> parametresi olarak iletilir.<br \/>\n*   <code>[NC,L]<\/code>: Bayraklar (Flags).<br \/>\n    *   <code>NC<\/code> (No Case): B\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z e\u015fle\u015fme.<br \/>\n    *   <code>L<\/code> (Last): Bu kural e\u015fle\u015fti\u011finde, Apache di\u011fer yeniden yazma kurallar\u0131n\u0131 i\u015flemeyi durdurur.<\/p>\n<h3>WWW Olmayan Alan Ad\u0131ndan WWW&#8217;ye Y\u00f6nlendirme (Non-WWW to WWW Redirection)<\/h3>\n<p>Web sitenizin <code>www.example.com<\/code> yerine <code>example.com<\/code> \u00fczerinden eri\u015fildi\u011finde, otomatik olarak <code>www<\/code>&#8216;li versiyona y\u00f6nlendirilmesini sa\u011flamak SEO i\u00e7in \u00f6nemlidir.<\/p>\n<pre><code class=\"language-apache\">RewriteEngine On\nRewriteCond %{HTTP_HOST} !^www\\. [NC]\nRewriteRule ^(.*)$ http:\/\/www.%{HTTP_HOST}\/$1 [L,R=301]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteCond %{HTTP_HOST} !^www\\. [NC]<\/code>: Bir ko\u015ful tan\u0131mlar.<br \/>\n    *   <code>%{HTTP_HOST}<\/code>: Gelen iste\u011fin host ad\u0131n\u0131 (\u00f6rne\u011fin <code>example.com<\/code>) al\u0131r.<br \/>\n    *   <code>!^www\\.<\/code>: Host ad\u0131n\u0131n <code>www.<\/code> ile ba\u015flamad\u0131\u011f\u0131n\u0131 kontrol eder (<code>!<\/code> olumsuzluk i\u015faretidir).<br \/>\n    *   <code>[NC]<\/code>: B\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z.<br \/>\n<em>   <code>RewriteRule ^(.<\/em>)$ http:\/\/www.%{HTTP_HOST}\/$1 [L,R=301]<\/code>: E\u011fer ko\u015ful do\u011fruysa bu kural\u0131 uygular.<br \/>\n    <em>   <code>^(.<\/em>)$<\/code>: Gelen URL&#8217;nin tamam\u0131n\u0131 yakalar (<code>$1<\/code>).<br \/>\n    *   <code>http:\/\/www.%{HTTP_HOST}\/$1<\/code>: Yakalanan URL&#8217;yi <code>www.<\/code> ile ba\u015flayan host ad\u0131na y\u00f6nlendirir.<br \/>\n    *   <code>[L,R=301]<\/code>:<br \/>\n        *   <code>L<\/code> (Last): Son kural.<br \/>\n        *   <code>R=301<\/code> (Permanent Redirect): Kal\u0131c\u0131 bir 301 y\u00f6nlendirmesi yapar. Bu, arama motorlar\u0131 i\u00e7in \u00f6nemlidir.<\/p>\n<h3>HTTP&#8217;den HTTPS&#8217;ye Y\u00f6nlendirme (HTTP to HTTPS Redirection)<\/h3>\n<p>G\u00fcvenli bir ba\u011flant\u0131 (HTTPS) kullanmak modern web siteleri i\u00e7in bir standartt\u0131r. T\u00fcm HTTP isteklerini HTTPS&#8217;ye y\u00f6nlendirmek i\u00e7in:<\/p>\n<pre><code class=\"language-apache\">RewriteEngine On\nRewriteCond %{HTTPS} off\nRewriteRule ^(.*)$ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [L,R=301]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteCond %{HTTPS} off<\/code>: Gelen iste\u011fin HTTPS olmad\u0131\u011f\u0131n\u0131 kontrol eder.<br \/>\n<em>   <code>RewriteRule ^(.<\/em>)$ https:\/\/%{HTTP_HOST}%{REQUEST_URI} [L,R=301]<\/code>: E\u011fer ko\u015ful do\u011fruysa, iste\u011fi HTTPS versiyonuna y\u00f6nlendirir.<br \/>\n    *   <code>%{REQUEST_URI}<\/code>: Gelen iste\u011fin URI&#8217;sini (\u00f6rne\u011fin <code>\/index.html<\/code> veya <code>\/urun\/123<\/code>) al\u0131r.<\/p>\n<h3>Dosya Uzant\u0131s\u0131n\u0131 Gizleme (Hiding File Extensions)<\/h3>\n<p><code>example.com\/hakkimizda.php<\/code> yerine <code>example.com\/hakkimizda<\/code> gibi daha temiz URL&#8217;ler olu\u015fturmak.<\/p>\n<pre><code class=\"language-apache\">RewriteEngine On\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule ^([^\/]+)\/?$ $1.php [L]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteCond %{REQUEST_FILENAME} !-f<\/code>: \u0130stenen URI&#8217;nin fiziksel olarak var olan bir dosya olmad\u0131\u011f\u0131n\u0131 kontrol eder.<br \/>\n*   <code>RewriteCond %{REQUEST_FILENAME} !-d<\/code>: \u0130stenen URI&#8217;nin fiziksel olarak var olan bir dizin olmad\u0131\u011f\u0131n\u0131 kontrol eder.<br \/>\n*   <code>RewriteRule ^([^\/]+)\/?$ $1.php [L]<\/code>: E\u011fer yukar\u0131daki ko\u015fullar do\u011fruysa, gelen URI&#8217;yi yakalar ve sonuna <code>.php<\/code> ekleyerek dahili olarak yeniden yazar.<\/p>\n<h3>Belirli IP Adreslerinden Eri\u015fimi Engelleme (Blocking IP Addresses)<\/h3>\n<p>Belirli IP adreslerinden gelen eri\u015fimi engellemek i\u00e7in <code>mod_rewrite<\/code> kullan\u0131labilir, ancak genellikle <code>mod_authz_host<\/code> mod\u00fcl\u00fc bu t\u00fcr i\u015flemler i\u00e7in daha uygundur. Yine de bir \u00f6rnek:<\/p>\n<pre><code class=\"language-apache\">RewriteEngine On\nRewriteCond %{REMOTE_ADDR} ^192\\.168\\.1\\.100$ [OR]\nRewriteCond %{REMOTE_ADDR} ^10\\.0\\.0\\.50$\nRewriteRule .* - [F]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   <code>RewriteCond %{REMOTE_ADDR} ^192\\.168\\.1\\.100$ [OR]<\/code>: Gelen iste\u011fin IP adresinin <code>192.168.1.100<\/code> oldu\u011funu kontrol eder veya (OR)<br \/>\n*   <code>RewriteCond %{REMOTE_ADDR} ^10\\.0\\.0\\.50$<\/code>: IP adresinin <code>10.0.0.50<\/code> oldu\u011funu kontrol eder.<br \/>\n<em>   <code>RewriteRule .<\/em> - [F]<\/code>: E\u011fer ko\u015fullardan biri do\u011fruysa, iste\u011fi yasaklar (<code>F<\/code> &#8211; Forbidden bayra\u011f\u0131 403 hatas\u0131 d\u00f6nd\u00fcr\u00fcr). <code>-<\/code> (tire) hedef URL olmad\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h3>Eski URL&#8217;lerden Yeni URL&#8217;lere Y\u00f6nlendirme (Old to New URL Redirects)<\/h3>\n<p>Web sitenizin yap\u0131s\u0131n\u0131 de\u011fi\u015ftirdi\u011finizde veya bir sayfay\u0131 ta\u015f\u0131d\u0131\u011f\u0131n\u0131zda, eski URL&#8217;lerden yeni URL&#8217;lere kal\u0131c\u0131 y\u00f6nlendirmeler yapmak SEO i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<pre><code class=\"language-apache\">RewriteEngine On\nRewriteRule ^eski-sayfa\\.html$ \/yeni-sayfa\/ [R=301,L]\nRewriteRule ^eski-dizin\/(.*)$ \/yeni-dizin\/$1 [R=301,L]<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><br \/>\n*   \u0130lk kural, tam bir eski sayfa ad\u0131n\u0131 yeni bir dizine y\u00f6nlendirir.<br \/>\n*   \u0130kinci kural, eski bir dizindeki t\u00fcm i\u00e7eri\u011fi yeni bir dizine y\u00f6nlendirir. <code>$1<\/code> yakalanan t\u00fcm alt dizin ve dosya yolunu temsil eder.<\/p>\n<p>Bu \u00f6rnekleri kendi ihtiya\u00e7lar\u0131n\u0131za g\u00f6re uyarlayarak veya birle\u015ftirerek karma\u015f\u0131k yeniden yazma kurallar\u0131 olu\u015fturabilirsiniz. Her de\u011fi\u015fiklikten sonra <code>.htaccess<\/code> dosyas\u0131n\u0131 kaydetmeyi unutmay\u0131n. Apache&#8217;yi yeniden ba\u015flatmaya gerek yoktur \u00e7\u00fcnk\u00fc <code>.htaccess<\/code> dosyalar\u0131 her istekte yeniden okunur (e\u011fer <code>AllowOverride<\/code> etkinse).<\/p>\n<h2>Rewrite Kurallar\u0131n\u0131n S\u00f6z Dizimi ve Temel Bile\u015fenleri<\/h2>\n<p><code>mod_rewrite<\/code> kurallar\u0131, g\u00fc\u00e7l\u00fc ve esnek d\u00fczenli ifadeler (Regular Expressions) kullan\u0131r. Kurallar\u0131 do\u011fru yazmak i\u00e7in temel bile\u015fenleri ve bayraklar\u0131 anlamak \u00f6nemlidir.<\/p>\n<h3>RewriteEngine<\/h3>\n<p>*   <code>RewriteEngine On|Off<\/code>: <code>mod_rewrite<\/code> motorunu etkinle\u015ftirir veya devre d\u0131\u015f\u0131 b\u0131rak\u0131r. Her <code>.htaccess<\/code> dosyas\u0131n\u0131n veya <code><Directory><\/code> blo\u011funun ba\u015f\u0131nda <code>On<\/code> olarak ayarlanmal\u0131d\u0131r.<\/p>\n<h3>RewriteBase<\/h3>\n<p>*   <code>RewriteBase \/path\/<\/code>: E\u011fer <code>.htaccess<\/code> dosyan\u0131z web sunucusunun belge k\u00f6k dizininin bir alt dizinindeyse, <code>RewriteBase<\/code> direktifi, yeniden yazma kurallar\u0131n\u0131n temel URL yolunu belirtmek i\u00e7in kullan\u0131l\u0131r. Genellikle <code>RewriteBase \/<\/code> olarak ayarlan\u0131r. Bu, yeniden yazma kurallar\u0131ndaki hedef URL&#8217;lerin (Substitution) belge k\u00f6k dizinine g\u00f6re mutlak yol olarak yorumlanmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>RewriteCond (Yeniden Yazma Ko\u015fulu)<\/h3>\n<p>*   <code>RewriteCond TestString CondPattern [Flags]<\/code>: Bir <code>RewriteRule<\/code>&#8216;un uygulanabilmesi i\u00e7in bir veya daha fazla ko\u015ful tan\u0131mlar. Bir <code>RewriteRule<\/code>&#8216;dan \u00f6nce gelen t\u00fcm <code>RewriteCond<\/code>&#8216;lar, varsay\u0131lan olarak <code>AND<\/code> (ve) mant\u0131ksal operat\u00f6r\u00fc ile birle\u015ftirilir.<br \/>\n    *   <code>TestString<\/code>: Kontrol edilecek dize. Genellikle sunucu de\u011fi\u015fkenleri (<code>%{HTTP_HOST}<\/code>, <code>%{REQUEST_URI}<\/code>, <code>%{REMOTE_ADDR}<\/code>, <code>%{HTTPS}<\/code>, <code>%{REQUEST_FILENAME}<\/code> vb.) kullan\u0131l\u0131r.<br \/>\n    *   <code>CondPattern<\/code>: <code>TestString<\/code> ile e\u015fle\u015ftirilecek d\u00fczenli ifade deseni.<br \/>\n    *   <code>[Flags]<\/code>: Ko\u015fula \u00f6zel bayraklar.<br \/>\n        *   <code>[NC]<\/code> (No Case): B\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z e\u015fle\u015fme.<br \/>\n        *   <code>[OR]<\/code> (Or): Bir sonraki <code>RewriteCond<\/code> ile bu ko\u015fulu <code>OR<\/code> operat\u00f6r\u00fc ile birle\u015ftirir.<br \/>\n        *   <code>[L]<\/code> (Last): Bu ko\u015ful do\u011fruysa, di\u011fer ko\u015fullar\u0131 kontrol etmeyi durdurur.<\/p>\n<h3>RewriteRule (Yeniden Yazma Kural\u0131)<\/h3>\n<p>*   <code>RewriteRule Pattern Substitution [Flags]<\/code>: Gelen URL&#8217;yi (Pattern) belirli bir hedefe (Substitution) yeniden yazan ana kurald\u0131r.<br \/>\n    *   <code>Pattern<\/code>: Gelen URL yolunu e\u015fle\u015ftirmek i\u00e7in kullan\u0131lan d\u00fczenli ifade.<br \/>\n    *   <code>Substitution<\/code>: <code>Pattern<\/code> ile e\u015fle\u015fen URL&#8217;nin yeniden yaz\u0131laca\u011f\u0131 hedef URL veya dosya yolu. D\u00fczenli ifadedeki yakalanan gruplar (<code>(...)<\/code>) burada <code>$1<\/code>, <code>$2<\/code> vb. \u015feklinde kullan\u0131labilir.<br \/>\n    *   <code>[Flags]<\/code>: Kural\u0131n davran\u0131\u015f\u0131n\u0131 de\u011fi\u015ftiren bayraklar. En yayg\u0131n olanlar\u0131:<br \/>\n        *   <code>L<\/code> (Last): Bu kural e\u015fle\u015fti\u011finde, <code>mod_rewrite<\/code> i\u015flemeyi durdurur ve di\u011fer kurallar\u0131 atlar.<br \/>\n        *   <code>R<\/code> veya <code>R=301|302|...<\/code> (Redirect): Taray\u0131c\u0131ya bir HTTP y\u00f6nlendirmesi g\u00f6nderir. <code>R<\/code> varsay\u0131lan olarak 302 (ge\u00e7ici) y\u00f6nlendirme yapar. <code>R=301<\/code> kal\u0131c\u0131 y\u00f6nlendirme i\u00e7in kullan\u0131l\u0131r.<br \/>\n        *   <code>NC<\/code> (No Case): D\u00fczenli ifade e\u015fle\u015fmesini b\u00fcy\u00fck\/k\u00fc\u00e7\u00fck harf duyars\u0131z yapar.<br \/>\n        *   <code>QSA<\/code> (Query String Append): E\u011fer hedef URL&#8217;de bir sorgu dizesi yoksa, orijinal iste\u011fin sorgu dizesini ekler.<br \/>\n        *   <code>NE<\/code> (No Escape): \u00c7\u0131kt\u0131daki \u00f6zel karakterlerin (\u00f6rne\u011fin bo\u015fluklar, T\u00fcrk\u00e7e karakterler) URL kodlamas\u0131n\u0131 engeller.<br \/>\n        *   <code>F<\/code> (Forbidden): E\u015fle\u015fen URL&#8217;ye eri\u015fimi yasaklar (403 Forbidden hatas\u0131).<br \/>\n        *   <code>P<\/code> (Proxy): Hedef URL&#8217;yi dahili olarak bir proxy iste\u011fi olarak i\u015fler. <code>mod_proxy<\/code>&#8216;nin etkin olmas\u0131 gerekir.<br \/>\n        *   <code>PT<\/code> (Pass Through): <code>RewriteRule<\/code>&#8216;dan sonraki i\u015fleme devam eder, yani Apache&#8217;nin normal dosya\/dizin e\u015fle\u015ftirme mekanizmas\u0131n\u0131 kullan\u0131r. \u00d6zellikle <code>mod_alias<\/code> veya <code>mod_autoindex<\/code> gibi di\u011fer mod\u00fcllerle etkile\u015fimde \u00f6nemlidir.<br \/>\n        *   <code>E=VAR:VALUE<\/code> (Env): Ortam de\u011fi\u015fkeni ayarlar.<\/p>\n<h3>D\u00fczenli \u0130fadeler (Regular Expressions)<\/h3>\n<p><code>mod_rewrite<\/code>&#8216;\u0131n g\u00fcc\u00fc, d\u00fczenli ifadelerin do\u011fru kullan\u0131m\u0131yla ortaya \u00e7\u0131kar. Baz\u0131 temel d\u00fczenli ifade karakterleri:<br \/>\n*   <code>.<\/code>: Herhangi bir tek karakter (sat\u0131r sonu hari\u00e7).<br \/>\n<em>   <code><\/em><\/code>: \u00d6nceki karakterin s\u0131f\u0131r veya daha fazla tekrar\u0131.<br \/>\n*   <code>+<\/code>: \u00d6nceki karakterin bir veya daha fazla tekrar\u0131.<br \/>\n*   <code>?<\/code>: \u00d6nceki karakterin s\u0131f\u0131r veya bir tekrar\u0131 (iste\u011fe ba\u011fl\u0131).<br \/>\n*   <code>^<\/code>: Sat\u0131r\u0131n ba\u015flang\u0131c\u0131.<br \/>\n*   <code>$<\/code>: Sat\u0131r\u0131n sonu.<br \/>\n*   <code>[abc]<\/code>: <code>a<\/code>, <code>b<\/code> veya <code>c<\/code> karakterlerinden biri.<br \/>\n*   <code>[0-9]<\/code>: Herhangi bir rakam.<br \/>\n*   <code>[a-zA-Z]<\/code>: Herhangi bir harf.<br \/>\n*   <code>[^abc]<\/code>: <code>a<\/code>, <code>b<\/code> veya <code>c<\/code> d\u0131\u015f\u0131ndaki herhangi bir karakter.<br \/>\n*   <code>(pattern)<\/code>: Yakalama grubu. E\u015fle\u015fen k\u0131sm\u0131 <code>$1<\/code>, <code>$2<\/code> vb. de\u011fi\u015fkenlerde saklar.<br \/>\n*   <code>|<\/code>: Veya (alternatif).<br \/>\n*   <code>\\<\/code> (ters e\u011fik \u00e7izgi): \u00d6zel karakterleri ka\u00e7\u0131\u015f karakteri olarak kullan\u0131r (\u00f6rn. <code>\\.<\/code> bir nokta karakteriyle e\u015fle\u015fir).<\/p>\n<h2>Hata Ay\u0131klama ve Sorun Giderme<\/h2>\n<p><code>mod_rewrite<\/code> kurallar\u0131 olduk\u00e7a g\u00fc\u00e7l\u00fc olabilir, ancak yanl\u0131\u015f yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda web sitenizin eri\u015filemez hale gelmesine neden olabilir. Hata ay\u0131klama ad\u0131mlar\u0131 bu s\u00fcre\u00e7te kritik \u00f6neme sahiptir.<\/p>\n<h3>1. Apache Hata G\u00fcnl\u00fcklerini Kontrol Edin<\/h3>\n<p>Apache&#8217;nin hata g\u00fcnl\u00fckleri, <code>mod_rewrite<\/code> ile ilgili sorunlar\u0131 tespit etmenin ilk ve en \u00f6nemli yeridir.<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/httpd\/error_log<\/code><\/pre>\n<p>Bu komut, hata g\u00fcnl\u00fc\u011f\u00fcn\u00fc ger\u00e7ek zamanl\u0131 olarak izlemenizi sa\u011flar. Bir istek g\u00f6nderdi\u011finizde ve beklenen davran\u0131\u015f ger\u00e7ekle\u015fmedi\u011finde, burada ilgili hata mesajlar\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<h3>2. RewriteLog ve RewriteLogLevel (Apache 2.2 ve \u00d6ncesi) \/ LogLevel (Apache 2.4 ve Sonras\u0131)<\/h3>\n<p>Apache 2.4 ve sonraki s\u00fcr\u00fcmlerde <code>RewriteLog<\/code> ve <code>RewriteLogLevel<\/code> direktifleri kald\u0131r\u0131lm\u0131\u015ft\u0131r. Bunun yerine, <code>LogLevel<\/code> direktifi kullan\u0131l\u0131r ve <code>rewrite<\/code> mod\u00fcl\u00fc i\u00e7in \u00f6zel izleme seviyeleri ayarlanabilir.<\/p>\n<p><code>\/etc\/httpd\/conf\/httpd.conf<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo vi \/etc\/httpd\/conf\/httpd.conf<\/code><\/pre>\n<p><code>LogLevel<\/code> direktifini bulun ve a\u015fa\u011f\u0131daki gibi de\u011fi\u015ftirin (veya ekleyin):<\/p>\n<pre><code class=\"language-apache\">LogLevel debug rewrite:trace8<\/code><\/pre>\n<p>*   <code>debug<\/code>: Genel hata ay\u0131klama mesajlar\u0131n\u0131 etkinle\u015ftirir.<br \/>\n*   <code>rewrite:trace8<\/code>: <code>mod_rewrite<\/code> i\u00e7in en y\u00fcksek izleme seviyesini (8) etkinle\u015ftirir. Bu, <code>mod_rewrite<\/code>&#8216;\u0131n her ad\u0131m\u0131, ko\u015ful kontrol\u00fc ve kural e\u015fle\u015fmesi hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgi sa\u011flayacakt\u0131r.<\/p>\n<p>De\u011fi\u015fikli\u011fi kaydettikten sonra Apache&#8217;yi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart httpd<\/code><\/pre>\n<p>\u015eimdi, <code>\/var\/log\/httpd\/error_log<\/code> dosyas\u0131n\u0131 tekrar izleyin ve web sitenize bir istek g\u00f6nderin. G\u00fcnl\u00fcklerde <code>[rewrite:traceX]<\/code> ile ba\u015flayan \u00e7ok say\u0131da ayr\u0131nt\u0131l\u0131 bilgi g\u00f6receksiniz. Bu bilgiler, hangi kurallar\u0131n e\u015fle\u015fti\u011fini, hangi ko\u015fullar\u0131n do\u011fru\/yanl\u0131\u015f oldu\u011funu ve URL&#8217;nin nas\u0131l yeniden yaz\u0131ld\u0131\u011f\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olacakt\u0131r. Hata ay\u0131klama bitti\u011finde <code>LogLevel<\/code>&#8216;\u0131 eski de\u011ferine (<code>warn<\/code> veya <code>info<\/code>) geri almay\u0131 unutmay\u0131n, \u00e7\u00fcnk\u00fc y\u00fcksek izleme seviyeleri sunucu performans\u0131n\u0131 olumsuz etkiler ve \u00e7ok fazla disk alan\u0131 t\u00fcketebilir.<\/p>\n<h3>3. apachectl configtest<\/h3>\n<p>Yap\u0131land\u0131rma dosyalar\u0131n\u0131zda (\u00f6zellikle <code>httpd.conf<\/code> veya sanal host dosyalar\u0131) s\u00f6zdizimi hatalar\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo apachectl configtest<\/code><\/pre>\n<p><code>Syntax OK<\/code> \u00e7\u0131kt\u0131s\u0131 alana kadar s\u00f6zdizimi hatalar\u0131n\u0131 d\u00fczeltin. <code>.htaccess<\/code> dosyalar\u0131 i\u00e7in bu kontrol ge\u00e7erli de\u011fildir, \u00e7\u00fcnk\u00fc bunlar dinamik olarak okunur.<\/p>\n<h3>4. Taray\u0131c\u0131 \u00d6nbelle\u011fi<\/h3>\n<p>Taray\u0131c\u0131lar, \u00f6zellikle 301 y\u00f6nlendirmeleri gibi durumlarda, eski y\u00f6nlendirmeleri \u00f6nbelle\u011fe alabilir. Bu, yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin hemen g\u00f6r\u00fcnmemesine neden olabilir. Taray\u0131c\u0131 \u00f6nbelle\u011fini temizlemeyi veya gizli (incognito) modda test etmeyi deneyin. Zorunlu yenileme (Ctrl+F5 veya Cmd+Shift+R) de yard\u0131mc\u0131 olabilir.<\/p>\n<h3>5. AllowOverride Kontrol\u00fc<\/h3>\n<p><code>mod_rewrite<\/code> kurallar\u0131n\u0131z\u0131n \u00e7al\u0131\u015fmamas\u0131n\u0131n en yayg\u0131n nedenlerinden biri, <code>AllowOverride<\/code> direktifinin do\u011fru ayarlanmam\u0131\u015f olmas\u0131d\u0131r. Belge k\u00f6k dizini veya sanal host yap\u0131land\u0131rman\u0131zdaki <code><Directory><\/code> blo\u011funda <code>AllowOverride All<\/code> veya <code>AllowOverride FileInfo<\/code> olarak ayarland\u0131\u011f\u0131ndan emin olun ve Apache&#8217;yi yeniden ba\u015flat\u0131n.<\/p>\n<h3>6. .htaccess Dosyas\u0131n\u0131n Konumu ve \u0130zinleri<\/h3>\n<p><code>.htaccess<\/code> dosyas\u0131n\u0131n web sitenizin belge k\u00f6k dizininde veya alt dizininde oldu\u011fundan emin olun. Ayr\u0131ca, Apache kullan\u0131c\u0131s\u0131n\u0131n bu dosyay\u0131 okuma iznine sahip oldu\u011fundan emin olun (<code>chmod 644 .htaccess<\/code>).<\/p>\n<h3>7. SELinux ve Firewalld<\/h3>\n<p>Nadiren de olsa, SELinux veya Firewalld ayarlar\u0131 Apache&#8217;nin d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131n\u0131 engelleyebilir.<br \/>\n*   <strong>SELinux:<\/strong> <code>setsebool -P httpd_can_network_connect on<\/code> gibi komutlarla belirli SELinux politikalar\u0131n\u0131 ayarlaman\u0131z gerekebilir. <code>sudo getenforce<\/code> ile SELinux&#8217;un durumunu kontrol edebilir (<code>Enforcing<\/code>, <code>Permissive<\/code>, <code>Disabled<\/code>). <code>sudo tail -f \/var\/log\/audit\/audit.log<\/code> komutuyla SELinux g\u00fcnl\u00fcklerini inceleyebilirsiniz.<br \/>\n*   <strong>Firewalld:<\/strong> E\u011fer Apache varsay\u0131lan HTTP (80) veya HTTPS (443) portlar\u0131nda \u00e7al\u0131\u015fm\u0131yorsa veya harici kaynaklara eri\u015fmesi gerekiyorsa, Firewalld&#8217;da ilgili portlar\u0131n a\u00e7\u0131k oldu\u011fundan emin olun. <code>sudo firewall-cmd --list-all<\/code> ile mevcut kurallar\u0131 g\u00f6rebilirsiniz.<\/p>\n<h2>Performans Konular\u0131 ve G\u00fcvenlik<\/h2>\n<p><code>mod_rewrite<\/code> g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r, ancak do\u011fru kullan\u0131lmad\u0131\u011f\u0131nda performans sorunlar\u0131na veya g\u00fcvenlik a\u00e7\u0131klar\u0131na yol a\u00e7abilir.<\/p>\n<h3>Performans Etkisi<\/h3>\n<p>*   <strong>.htaccess Dosyalar\u0131:<\/strong> Apache, her gelen istek i\u00e7in, istek yap\u0131lan dizinden ba\u015flayarak k\u00f6k dizine kadar t\u00fcm <code>.htaccess<\/code> dosyalar\u0131n\u0131 okur ve i\u015fler. Bu durum, \u00f6zellikle \u00e7ok say\u0131da <code>.htaccess<\/code> dosyas\u0131 olan veya karma\u015f\u0131k kurallar i\u00e7eren sitelerde \u00f6nemli bir performans y\u00fck\u00fc olu\u015fturabilir. M\u00fcmk\u00fcnse, <code>mod_rewrite<\/code> kurallar\u0131n\u0131 do\u011frudan ana Apache yap\u0131land\u0131rma dosyalar\u0131na (\u00f6rne\u011fin <code>\/etc\/httpd\/conf\/httpd.conf<\/code> veya sanal host yap\u0131land\u0131rma dosyalar\u0131na) ta\u015f\u0131mak performans\u0131 art\u0131r\u0131r. Bu, Apache&#8217;nin kurallar\u0131 yaln\u0131zca bir kez, ba\u015flang\u0131\u00e7ta y\u00fcklemesini sa\u011flar.<br \/>\n*   <strong>D\u00fczenli \u0130fadelerin Karma\u015f\u0131kl\u0131\u011f\u0131:<\/strong> Karma\u015f\u0131k ve verimsiz d\u00fczenli ifadeler, Apache&#8217;nin CPU kullan\u0131m\u0131n\u0131 art\u0131rabilir. Basit ve optimize edilmi\u015f d\u00fczenli ifadeler kullanmaya \u00f6zen g\u00f6sterin. Gereksiz yakalama gruplar\u0131ndan veya geriye d\u00f6n\u00fck referanslardan ka\u00e7\u0131n\u0131n.<br \/>\n*   <strong>Bayrak Kullan\u0131m\u0131:<\/strong> <code>L<\/code> (Last) bayra\u011f\u0131n\u0131 do\u011fru kullanmak, gereksiz kural i\u015flemeyi durdurarak performans\u0131 art\u0131rabilir. <code>NC<\/code> (No Case) gibi bayraklar da k\u00fc\u00e7\u00fck bir performans maliyeti ekler.<\/p>\n<h3>G\u00fcvenlik Hususlar\u0131<\/h3>\n<p>*   <strong>A\u00e7\u0131k Y\u00f6nlendirmeler:<\/strong> Yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f <code>RewriteRule<\/code>&#8216;lar, sald\u0131rganlar\u0131n kullan\u0131c\u0131lar\u0131 k\u00f6t\u00fc niyetli sitelere y\u00f6nlendirmesine olanak tan\u0131yan &#8220;a\u00e7\u0131k y\u00f6nlendirme&#8221; (open redirect) zafiyetlerine yol a\u00e7abilir. Hedef URL&#8217;leri olu\u015ftururken dikkatli olun ve kullan\u0131c\u0131 taraf\u0131ndan sa\u011flanan girdileri do\u011frudan g\u00fcvenmeden kullanmay\u0131n.<br \/>\n*   <strong>Dizin Listeleme ve Hassas Bilgi S\u0131zd\u0131rma:<\/strong> <code>mod_rewrite<\/code>&#8216;\u0131n kendisi do\u011frudan dizin listeleme ile ilgili de\u011fildir, ancak yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f bir <code>.htaccess<\/code> dosyas\u0131, <code>Options -Indexes<\/code> gibi g\u00fcvenlik direktiflerini ge\u00e7ersiz k\u0131larak veya hassas dosyalar\u0131n do\u011frudan eri\u015fimine izin vererek dolayl\u0131 g\u00fcvenlik riskleri olu\u015fturabilir.<br \/>\n*   <strong>DoS Sald\u0131r\u0131lar\u0131:<\/strong> A\u015f\u0131r\u0131 karma\u015f\u0131k veya d\u00f6ng\u00fcsel <code>mod_rewrite<\/code> kurallar\u0131, sunucuyu DoS (Denial of Service) sald\u0131r\u0131lar\u0131na kar\u015f\u0131 savunmas\u0131z hale getirebilir. Sunucu, bir iste\u011fi i\u015flemek i\u00e7in \u00e7ok fazla kaynak harcayabilir ve sonu\u00e7 olarak me\u015fru isteklere yan\u0131t veremeyebilir.<\/p>\n<p>G\u00fcvenlik ve performans i\u00e7in en iyi uygulama, <code>mod_rewrite<\/code> kurallar\u0131n\u0131, m\u00fcmk\u00fcn oldu\u011funca, sanal host yap\u0131land\u0131rmalar\u0131 i\u00e7inde veya ana sunucu yap\u0131land\u0131rmas\u0131nda tutmakt\u0131r. <code>.htaccess<\/code> dosyalar\u0131, \u00f6zellikle payla\u015f\u0131ml\u0131 bar\u0131nd\u0131rma ortamlar\u0131nda, esneklik sa\u011flarken potansiyel g\u00fcvenlik ve performans risklerini de beraberinde getirir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>CentOS 7 \u00fczerinde Apache i\u00e7in <code>mod_rewrite<\/code>&#8216;\u0131 kurmak ve yap\u0131land\u0131rmak, web sitelerinizin ve uygulamalar\u0131n\u0131z\u0131n modern web standartlar\u0131na uyum sa\u011flamas\u0131 i\u00e7in temel bir ad\u0131md\u0131r. Bu g\u00fc\u00e7l\u00fc mod\u00fcl, URL&#8217;leri yeniden yazarak SEO&#8217;yu iyile\u015ftirmenize, kullan\u0131c\u0131 dostu URL&#8217;ler olu\u015fturman\u0131za, g\u00fcvenli\u011fi art\u0131rman\u0131za ve sitenizin genel esnekli\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rman\u0131za olanak tan\u0131r.<\/p>\n<p>Bu makalede ad\u0131m ad\u0131m <code>mod_rewrite<\/code>&#8216;\u0131n nas\u0131l etkinle\u015ftirilece\u011fini, Apache&#8217;nin bu kurallar\u0131 i\u015flemesine nas\u0131l izin verilece\u011fini ve yayg\u0131n kullan\u0131m senaryolar\u0131 i\u00e7in \u00e7e\u015fitli yeniden yazma kurallar\u0131n\u0131n nas\u0131l yaz\u0131laca\u011f\u0131n\u0131 detayl\u0131 bir \u015fekilde ele ald\u0131k. Ayr\u0131ca, karma\u015f\u0131k kurallar\u0131n s\u00f6zdizimi, hata ay\u0131klama teknikleri ve performans ile g\u00fcvenlik konular\u0131na da de\u011findik.<\/p>\n<p>Unutmay\u0131n ki <code>mod_rewrite<\/code> kurallar\u0131 olduk\u00e7a g\u00fc\u00e7l\u00fc oldu\u011fundan, her de\u011fi\u015fikli\u011fi dikkatlice test etmek ve Apache hata g\u00fcnl\u00fcklerini d\u00fczenli olarak kontrol etmek kritik \u00f6neme sahiptir. Do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda, <code>mod_rewrite<\/code> web geli\u015ftiricileri i\u00e7in vazge\u00e7ilmez bir ara\u00e7 haline gelir ve web sitenizin internet \u00fczerindeki varl\u0131\u011f\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde g\u00fc\u00e7lendirir. Bu rehberin, CentOS 7 sunucunuzda <code>mod_rewrite<\/code>&#8216;\u0131 ba\u015far\u0131l\u0131 bir \u015fekilde yap\u0131land\u0131rman\u0131za yard\u0131mc\u0131 olaca\u011f\u0131n\u0131 umuyoruz.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz web d\u00fcnyas\u0131nda, kullan\u0131c\u0131 deneyimi, arama motoru opti","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":[241],"tags":[],"class_list":{"0":"post-34324","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131 - 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\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131\" \/>\n<meta property=\"og:description\" content=\"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz web d\u00fcnyas\u0131nda, kullan\u0131c\u0131 deneyimi, arama motoru opti\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-15T02:40:59+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=\"21 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131\",\"datePublished\":\"2025-11-15T02:40:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/\"},\"wordCount\":3518,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/\",\"name\":\"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-15T02:40:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131\"}]},{\"@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":"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131 - 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\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/","og_locale":"tr_TR","og_type":"article","og_title":"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131","og_description":"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz web d\u00fcnyas\u0131nda, kullan\u0131c\u0131 deneyimi, arama motoru opti","og_url":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-15T02:40:59+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"21 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131","datePublished":"2025-11-15T02:40:59+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/"},"wordCount":3518,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/","url":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/","name":"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-15T02:40:59+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerinde-apache-icin-mod_rewrite-kurulumu-ve-yapilandirmasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"CentOS 7 \u00dczerinde Apache i\u00e7in mod_rewrite Kurulumu ve Yap\u0131land\u0131rmas\u0131"}]},{"@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\/34324","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=34324"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34324\/revisions"}],"predecessor-version":[{"id":34325,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34324\/revisions\/34325"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}