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.