FOL9000

Magento auf dem Mac mit mod_rewrite – in jedem Verzeichnis

von

Eigentlich ganz simpel, aber doch etwas tricky: Magento das URL-Rewriting auf dem Mac ermöglichen.

Eins vorweg: Ich bin alles andere als ein Experte für die Konfiguration des Apache. Deshalb mag es einfachere oder schlicht bessere Lösungen geben, um das Rewriting für Magento zu ermöglichen; aber mir ist erstmal wichtig, dass es läuft. Ich benutze diese Konfiguration ohnehin nur lokal zum Entwickeln und Testen.

Das URL-Rewriting wird in der Magento-Installation gleich auf der zweiten Seite angeboten. Bei einer Echt-Installation sollte es auf jeden Fall angewählt sein. Es macht nicht nur die URLs lesbarer, es ist auch ein wichtiger Teil der Suchmaschinen-Optimierung. Damit es aber auch funktioniert, muss es nicht nur von Magento genutzt, sondern auch im Web-Server eingestellt sein.

Eigentlich ist die Aktivierung des Moduls zum URL-Rewriting einfach. In einer Test-Installation kam bei mir jedoch das Problem hinzu, dass ich Magento in einem Unterverzeichnis des User-Sites-Verzeichnisses installiert hatte. Hier wurde ein weiterer Schritt nötig.

Installations-Verzeichnis

Zunächst also der etwas ungewöhnliche Installationsort. Es sollte ein Unterverzeichnis im User-Web-Space werden, also z.B für den User otto:

/Users/otto/Sites/magento_subdir

Erreichbar wäre diese Installation dann unter der URL

http://localhost/~otto/magento_subdir

Apache-Konfiguration

Die Konfiguration besteht aus drei Schritten: Zunächst muss in der globalen Apache-Konfiguration das Modul mod_rewrite überhaupt erst einmal aktiviert werden, dann müssen die Verzeichnis-Einstellungen angepasst werden und schließlich, wenn man Magento wie in diesem Beispiel in einem Sub-Verzeichnis installieren will, muss Magento dieses Verzeichnis als Basis angegeben werden.

Und noch etwas vorweg: Selbstverständlich benötigt man zum Ändern der globalen Konfigurations-Datei Admin-Rechte.

Zunächst also zur globalen Apache-Konfiguration. Die findet sich auf dem Mac in der Datei

/etc/apache2/httpd.conf

Nach dem ersten, selbstverständlichen Schritt, nämlich eine Backup-Kopie dieser Datei anzulegen, öffnet man die Datei und findet nach ein wenig Blättern eine ganz Reihe von mit ‚LoadModule‘ beginnenden Zeilen. Eine Zeile sieht wie die folgende aus:

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Ein eventuell vor dieser Zeile stehendes Kommentarzeichen kommt weg, das Rewrite-Modul ist damit aktiviert.

Danach müssen die Einstellungen für das User-Sites-Verzeichnis hinzugefügt werden. Dazu ein paar Zeilen tiefer (am besten da, wo es ähnliche Einträge gibt) folgendes einfügen (und natürlich Pfad und Namen anpassen):

<Directory "/Users/otto/Sites/magento_subdir">
  Options FollowSyLinks 
  AllowOverride All
</Directory>

Nun geht es an die Konfiguration im Magento-Verzeichnis selbst, in unserem Falle also /Users/otto/Sites/magento_subdir. Dort findet sich die Datei .htaccess. Hier sollte die Zeile

RewriteEngine on

nicht auskommentiert sein und der Wert auch auf on stehen, aber das ist ohnehin beides default. Wichtig ist aber vor allem, die Zeile

RewriteBase /~otto/magento_subdir

entsprechend anzupassen, also eine evtl. Kommentierung rauszunehmen und den Pfad anzupassen.

Nun noch einen Apache-Neustart durchführen:

apachectl graceful

und das Rewriting sollte funktionieren.

Kommentare sind geschlossen.