IIS 7 Üzerinde Joomla SEO!
Öncelikle Geçmiş Kadir Gecenizi Kutlarım. Ben Kadir Gecesi ve diğer kandillerde yazı yazamam. Yani o konular dahilinde çok derin bir bilgiye sahip olmadığımdan ve kutlanacak çok fazla kişi olduğundan evden telefon etmek gecenin bir yarısına kadar sürüyor :) . Onun için ben geçmiş Kadir Gecenizi bir daha kutlamış olayım bu yazıyla. Gelelim Konumuza, efendim Windows Server’a yani ISS üzerinden çalışam PHP destekli bir ASP tabanlı hosting/reseller/server a sahip kişiler Joomla kuracak müşterilerinde yada bu kişiler kendileriyse son zamanlarda Google ‘Arama Motoru’ Uyumlu linkleri yani benim sitemde de sahip olduğum “Search Engine Friendly” link uzantılarına sahip olamazlar. Bu hep bir sıkıntı olmuştur. Nedeni Apache Serverlarda bulunan rewrite_module uyumluluğunun Windows IIS sistemi üzerinde sıkıntı yaratmasıdır.
Bu durumda Joomla Kuracak şahısların bir PHP tabanlı server/hostinge geçmek zorunda kalmaları üzüntü vericidir. Bunu tabiiki sistemini Joomla’ya çeviren ve veritabanında çok büyük zaiyatlara yol açacak kişiler için de bir o kadar üzüntğü verici olduğu da aşikardır. Ama ben size birazdan vereceğim kodları ASP server üzerinde basit bir web.config dosyasıyla “301” yönlendirme kuralını kullanarak basit bir seo girişiminde bulunacaksınız. Öncelikle PozitifSoft ile çalışırken farkettiğim ve araştırmalar sonucu deneme yanılma yöntemiyle ve Arama motorlarını deşerek bulduğum yanıtın çalıştığını ilk denediğim Joomla sitede yani HavannaDeluxe sitesindeki linklerden (siteyi domain yenilenmemiş, site açılmıyor bilgilerinize.) test edebilirsiniz.
Linklerin sonlarının .html da ayarlanabildiğini göreceksiniz. Tek yapmanız gereken aşağıdaki kodlar ile bir web.config dosyası oluşturmak ve dosyanızı httpdocs klasörü altına atmak. Ondan sonraki adım Joomla sistem özelliklerinden AMO alanında SEO ile ilgili alanları açmak. Tüm seo alanlarını açabilirsiniz. Joomla 1.5.x serisi ile IIS 7 sistemi üzerinde denenmiştir.
İşte Kod;
<rewrite>
<rules>
<rule name="Security Rule" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAny">
<add input="{QUERY_STRING}" pattern="mosConfig_[a-zA-Z_]{1,21}(=|%3D)" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="base64_encode.*(.*)" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="(<|%3C).*script.*(>|%3E)" />
<add input="{QUERY_STRING}" pattern="GLOBALS(=|[|%[0-9A-Z]{0,2})" ignoreCase="false" />
<add input="{QUERY_STRING}" pattern="_REQUEST(=|[|%[0-9A-Z]{0,2})" ignoreCase="false" />
</add></conditions>
<action type="CustomResponse" url="index.php" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
</rule>
<rule name="SEO Rule">
<match url="(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
<add input="{URL}" negate="true" pattern="^/index.php" ignoreCase="false" />
<add input="{URL}" pattern="(/|.php|.html|.htm|.feed|.pdf|.raw|/[^.]*)$" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
Kodu bir dosya olarak vermememin sebebi, indirme yapılmas sıkıntısı değil, herkesin kodu inceleyebilmesidir. Eksik veya hatalı gördüğünüz yerleri lütfen yorumlarınızla bildiriniz.
Selametle. Teşekkürler.
Bu yazınızla Seo'nun detaylarını oldukça anlaşılır bir şekilde açıklamışsınız. Çok Teşekkürler.
Verdiğiniz web.config dosyası bende işe yaramadı. Biraz karışık ama şöyle açıklayayım. eğer joomla da rewrite özelliğini aktif yaparsan adreslerde index.php olmadan oluşuyor. Ancak tüm sayfalar 404 hatası veriyor. Eğer bu özelliiği açmassam adresler <a href="http://www.aaaaaaaa.com/index.php/” target=”_blank”>www.aaaaaaaa.com/index.php/ bbb.html şeklinde oluşuyor bu durumdada sayfadaki tüm linkler index.php li olduğundan template özellikleri resimler vs. olmadan görünüyor. Server 2008 de kurulu olan IIS 7 bir öneriniz var mı?
Selamlar Sinan,
Şimdi öncelikle verdiğim dosyanın üzerinden yaklaşık 1 sene kadar süre geçmiş. Joomla içerisinde bazı dğeişiklikler olmuş olaiblir. Uzun süredir pek takip edemediğim bir konu. Bunu şimdi bana hatırlattığın için teşekkür ederim. Konu üzerine bir araştırma yapacağım bayramdan sonra. Eğer bir cevap bulursam sana mail, Bloguma da yazı yazarım bu konu hakkında. Olabilecek en kısa sürede geri dönüş yapabilirim umarım. Eğer bir soru, öneri, ufak da olsa bir ipucu bulursan iletişim alanından bana mail atabilirsen sevinirim.
İyi akşamlar, hayırlı bayramlar.
Detaylı anlatımınız için teşekkürler
değerli paylaşımınız için teşekkürler