WordPress Kurallarının da İstisnaları Var

wordpress apache

wordpress apacheWordPress, blog platformunda büyük bir evrimsel adım attı ve onu revizyon izleme, özel menüler için daha fazla destek ve - benim için en ilgi çekici özellik olan - alan haritalama ile çoklu site desteğine sahip tam teşekküllü bir içerik yönetim sistemine yaklaştırdı.

Bir içerik yönetim sistemi bağımlısı değilseniz, sorun değil. Bu makalede geçen sağ atlayabilirsiniz. Ancak tekno-meraklı arkadaşlarım, kod kafalılarım ve apaçilerle uğraşanlar için ilginç ve harika bir şey paylaşmak istiyorum.

Çoklu site, tek bir WordPress kurulumuyla herhangi bir sayıda WordPress web sitesini çalıştırmanıza izin veren bir özelliktir. Birden fazla siteyi yönetiyorsanız, onaylanmış bir tema ve pencere öğesi grubu yükleyebileceğiniz ve bunları istemci siteleriniz için etkinleştirebileceğiniz için güzeldir. Etki alanlarınızı haritalamak için birkaç teknik engel vardır, ancak süreç zor değildir.

Belirlediğim sorun alanlarından biri tema özelleştirmesidir. Temalar birden çok web sitesinde kullanılabilir hale getirilebildiğinden, bir temada yaptığınız tüm özelleştirmeler, çok siteli kurulumunuzda o temayı kullanan diğer siteleri de etkiler. Bunu aşma yolum, özelleştirmeye başlamadan önce bir temayı çoğaltmak ve stilini oluşturduğum müşteri sitesi için temayı açıkça adlandırmaktır.

Bir başka ilginç konu, Apache sunucunuzdaki .htaccess dosyasında ne olduğudur. WordPress, yolları blog bazında yeniden yazmalıdır ve bunu bir yeniden yazma kuralı ve bir php dosyasıyla yapar.

WordPress aşağıdaki yeniden yazma kuralını kullanır:

Yeniden Yazma Kuralı ^ ([_ 0-9a-zA-Z -] + /)? Dosyalar /(.+) wp-include / ms-files.php? File = $ 2 [L]

Esasen, mysite.com/files/directory alt dizininde bulunan her şey mysite.com/files/wp-includes/myblogfolderpath… 'e yeniden yazılır ve işte burada ilginç hale gelir. Sunucunuzda gerçekten mysite.com/files/myfolder/myimage.jpg olan bir dosyaya ihtiyacınız varsa ne olur? Bir 404 hatası alırsanız, olan budur. Apache yeniden yazma kuralı devreye girer ve yolu değiştirir.

Elbette, bu problemle asla karşılaşmayabilirsiniz, ama ben yaptım. Başka bir web sitesinden bir javascript pencere öğesini kullanması gereken bir sitem vardı ve mysite.com/files/Images/myfile adresinde grafikleri bulması gerekiyordu. Ana sitede dosyayı değiştirmenin bir yolu olmadığından, bunu sunucumda yapmanın bir yolunu bulmam gerekiyordu. Kolay çözüm, belirli dosyalar için bir istisna oluşturan bir yeniden yazma koşulu oluşturmaktır.

İşte çözüm:

RewriteCond% {REQUEST_URI}! /? Dosyalar / Resim / dosya1.jpg $
RewriteCond% {REQUEST_URI}! /? Dosyalar / Resim / dosya2.jpg $
Yeniden Yazma Kuralı ^ ([_ 0-9a-zA-Z -] + /)? Dosyalar /(.+) wp-include / ms-files.php? File = $ 2 [L]

Yeniden yazma koşullarının yeniden yazma kuralından önce yerleştirilmesi gerekir, aksi takdirde bu numara çalışmaz. Benzer bir sorunla karşılaşırsanız, bu durumu kendi amaçlarınız için değiştirmek kolay olacaktır. Çözüm benim için harika çalıştı ve tasarımıma uymayan daha az istenen alternatif metin yerine özel grafikleri değiştirmeme izin verdi. Umarım sizin için de işe yarar.

Ne düşünüyorsunuz?

Bu site spam'i azaltmak için Akismet'i kullanıyor. Yorum verilerinizin nasıl işlendiğini öğrenin.