WordPress-Regeln haben auch Ausnahmen

WordPress Apache

WordPress ApacheWordPress hat einen bedeutenden Evolutionsschritt in der Blogging-Plattform gemacht und es einem vollwertigen Content-Management-System mit Revisionsverfolgung, mehr Unterstützung für benutzerdefinierte Menüs und - für mich die faszinierendste Funktion - Unterstützung für mehrere Websites mit Domain-Mapping näher gebracht.

Wenn Sie kein Junkie für Content-Management-Systeme sind, ist es in Ordnung. Sie können diesen Artikel direkt überspringen. Aber für meine Techno-Geeks, Code-Heads und Apache-Dabbler möchte ich etwas Interessantes und Cooles teilen.

Multi-Site ist eine Funktion, mit der Sie eine beliebige Anzahl von WordPress-Websites mit einer einzigen WordPress-Installation ausführen können. Wenn Sie mehrere Sites verwalten, ist dies praktisch, da Sie eine genehmigte Gruppe von Designs und Widgets installieren und für Ihre Client-Sites aktivieren können. Es gibt ein paar technische Hürden, um Ihre Domains abzubilden, aber der Prozess ist nicht schwierig.

Einer der von mir identifizierten Problembereiche ist die Anpassung von Themen. Da Themen für mehrere Websites verfügbar gemacht werden können, wirken sich alle Anpassungen, die Sie an einem Thema vornehmen, auch auf andere Websites aus, die dieses Thema bei Ihrer Installation mit mehreren Websites verwenden. Um dies zu umgehen, dupliziere ich ein Thema, bevor ich mit dem Anpassen beginne, und benenne das Thema eindeutig für die Client-Site, für die ich es gestalte.

Ein weiteres interessantes Problem ist, was in der .htaccess-Datei auf Ihrem Apache-Server passiert. WordPress muss Pfade Blog für Blog neu schreiben und tut dies mit einer Umschreiberegel und einer PHP-Datei.

WordPress verwendet die folgende Umschreiberegel:

RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Files /(.+) wp-includes / ms-files.php? File = $ 2 [L]

Im Wesentlichen wird alles, was sich in einem Unterverzeichnis von mysite.com/files/directory befindet, in mysite.com/files/wp-includes/myblogfolderpath umgeschrieben… und hier wird es interessant. Was passiert, wenn Sie tatsächlich eine Datei auf Ihrem Server benötigen, die mysite.com/files/myfolder/myimage.jpg ist? Sie erhalten einen 404-Fehler, das passiert. Die Apache-Rewrite-Regel tritt ein und ändert den Pfad.

Zugegeben, Sie werden vielleicht nie auf dieses Problem stoßen, aber ich habe es getan. Ich hatte eine Website, die ein Javascript-Widget von einer anderen Website verwenden musste, und sie musste Grafiken unter mysite.com/files/Images/myfile finden. Da es keine Möglichkeit gab, die Datei auf der Host-Site zu ändern, musste ich einen Weg finden, dies auf meinem Server zu tun. Die einfache Lösung besteht darin, eine Umschreibungsbedingung zu erstellen, die eine Ausnahme für bestimmte Dateien darstellt.

Hier ist die Lösung:

RewriteCond% {REQUEST_URI}! /? Files / Image / file1.jpg $
RewriteCond% {REQUEST_URI}! /? Files / Image / file2.jpg $
RewriteRule ^ ([_ 0-9a-zA-Z -] + /)? Files /(.+) wp-includes / ms-files.php? File = $ 2 [L]

Die Rewrite-Bedingungen müssen vor der Rewrite-Regel stehen, sonst funktioniert dieser Trick nicht. Es sollte einfach sein, diese Bedingung für Ihre eigenen Zwecke zu ändern, sollten Sie auf ein ähnliches Problem stoßen. Die Lösung funktionierte hervorragend für mich, da ich benutzerdefinierte Grafiken anstelle des weniger wünschenswerten Alternativtextes ersetzen konnte, der nicht zu meinem Design passte. Hoffentlich funktioniert es auch für Sie.

Was denken Sie?

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.