mod_rewrite aktivieren


pixelschubser

Registered User
Hallo,

wie kann ich das Apache Modul mod_rewrite aktivieren?

Ich habe bei mir auf dem Server in der loadmodule.conf geschrieben:
LoadModule mod_rewrite /usr/lib/apache2-prefork/mod_rewrite.so

Dann hab ich die Datei gespeichert und den apache mit
/etc/init.d/apache2 restart
neugestartet.

Aber wenn ich dann mit phpinfo übern Browser nachsehe ob mor_rewrite aktiviert wurde, wird es nicht aufgeführt.
Wenn ich mir dann wieder die Datei loadmodule.conf ansehe, ist der Eintrag den ich gemacht habe nicht mehr da.

Kann mir jemand helfen? Was mach ich falsch?
 
probiers mal dort:

vi /etc/sysconfig/apache2

bei APACHE_MODULES="access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir /usr/lib/apache2-prefork/libphp4.so"

dein rewrite einfügen also

APACHE_MODULES="rewrite access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir /usr/lib/apache2-prefork/libphp4.so"

dann apache neustarten dann müsste es drin sein und du musst diese loadmodule.conf nicht selber editieren.. den diese ändert er durch diese config selber
 
Hi,

muss es so
APACHE_MODULES="rewrite access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir /usr/lib/apache2-prefork/libphp4.so"


oder so heissen:
APACHE_MODULES="rewrite access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir /usr/lib/apache2-prefork/mod_rewrite.so"

Danke
Nachtrag:
Bei mir steht dort nur dieses drin
# EXAMPLES:
#
# fairly minimal
# APACHE_MODULES="access alias auth dir log_config mime setenvif"
#
# apache's default installation
# APACHE_MODULES="access actions alias asis auth autoindex cgi dir imap include log_config mime negotiation setenvif status userdir"
# your settings
APACHE_MODULES="access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php4"

Also nicht was Du geschrieben hast
 
Last edited by a moderator:
pixelschubser said:
Weil nur selten ein Server identisch mit einem anderen ist.
Also vorsicht mit der Übernahme ganzer Zeilen oder Dateien.

Nimm einfach Deine Zeile und setzt dort 'rewrite' mit rein.

huschi.
 
Hi,

das funzt so nicht.
Er sagt mir egal wie ich es auch schreibe auf einmal das das Modul rewrite schon geladen ist.
Und danach kommt dann immer ein fehler.
Je nach Schreibweise in einer anderen Datei.

-Pixelschubser-
 
Hi Pixelschubser,

wenn Du, so wie ich, SuSE 9 hast, versuch es mal über Yast. Dort kannst Du die Variable ebenfalls bearbeiten.

System -> Editor for /etc/sysconfig Files ->
Network -> WWW -> Apache2 -> APACHE_MODULES, dann einmal TAB drücken in der Zeile die Module angeben, dann Finish.

Ich habe sie bei mir übrigens direkt, also mit Pfadangabe und Dateinamen drin. Funktioniert bei mir einwandfrei.

Gruß
tim
 
Hi,

ja nutze auch Suse 9.0.
Kannst Du mir mal sagen was genau ich da reinschreiben soll?
Es will nicht funzen.

-Pixelschubser-
 
Hi,
ich habe einfach "/usr/lib/apache2-prefork/mod_rewrite.so" (ohne Anführungszeichen) angehängt und Finish gedrückt.

Aber vielleicht liegt der Fehler ja auch woanders, zumal Du ja angeblich die Meldung bekommst, dass mod_rewrite bereits geladen wurde.

Wenn in Deiner /etc/apache2/sysconfig.d/loadmodule.conf
bereits die Zeile

LoadModule rewrite_module /usr/lib/apache2-prefork/mod_rewrite.so

drinsteht, wird das Modul auch schon geladen. Dann liegt der Fehler sicherlich woanders.

Gruß
tim
 
Hi,

hab die Lösung gefunden.
Einfach in diese Zeile:
APACHE_MODULES="access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir php4 rewrite"
eintragen.

Schon ist mod_rewrite aktiviert gewesen.

Jetzt muss ich nur noch rausbekommen wie ich das für einzelne webs aktivieren kann.
Jemand eine Lösung für CONFIXX?

Danke nochmal.
 
ich aber auch ich habe es nur anhang meines configs als beispiel gezeigt dort war genau zu sehen das rewrite dazu gekommen ist :) lol
 
pixelschubser said:
Jetzt muss ich nur noch rausbekommen wie ich das für einzelne webs aktivieren kann.
Falls Du meinst, daß Du mod_rewrite z.B. für web1 zulassen kannst und web2 nicht, dann muß ich Dich enttäuschen. Durch das Einbinden des Modules stehen seine Möglichkeiten Allen zur Verfügung (durch .htaccess). Es gibt IMHO keine Option, die es ermöglich in bestimmten Verzeichnissen keinen Rewrite zu zulassen.

huschi.
 
Hmm,

okay dann eben für alle.
Weil jetzt bekomme ich immer Fehler 403 wenn ich eine htaccess Datei auf den Server lege.

Woran kann das liegen?
 
pixelschubser said:
Hi,

muss es so
APACHE_MODULES="rewrite access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir /usr/lib/apache2-prefork/libphp4.so"

oder so heissen:
APACHE_MODULES="rewrite access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir /usr/lib/apache2-prefork/mod_rewrite.so"

Wie du doch schon sehen kannst, ist das erste Wort bereits "rewrite". Es ist also richtig eingestellt. Und Libraries wie libphp4.so (für PHP) und mod_rewrite.so (mod_rewrite) gehören da nicht rein, auch nicht mit vollständiger Pfadangabe. :)

Es muss daher heißen:

Code:
APACHE_MODULES="[b]rewrite[/b] access actions alias auth auth_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir"


Huschi said:
Falls Du meinst, daß Du mod_rewrite z.B. für web1 zulassen kannst und web2 nicht, dann muß ich Dich enttäuschen. Durch das Einbinden des Modules stehen seine Möglichkeiten Allen zur Verfügung (durch .htaccess). Es gibt IMHO keine Option, die es ermöglich in bestimmten Verzeichnissen keinen Rewrite zu zulassen.
Doch, das funktioniert. Ich habe dies so auf meinem vSERVER konfiguriert. Es hat mich aber einiges an Zeit gekostet, da Confixx mir immer dazwischengefunkt hat. Wenn man das Modul mittels APACHE_MODULES einbindet, steht es zwar erst einmal global zur Verfügung, jedoch verhindert die Default-Konfiguration von Apache durch Confixx, dass das Modul mod_rewrite verwendet werden kann.

Lösung: confixx and .htaccess and mod_rewrite (Error 403)

Ich habe es bei mir jedoch etwas anders gemacht (ich hatte den obigen Link noch nicht, hehe), da ich einigen Hinweisen von Confixx gefolgt bin. Hinter dem Include-Befehl der confixx_vhost.conf in /etc/apache2/httpd.conf habe ich einen analogen Include-Befehl für die Datei /etc/apache2/meine_httpd.conf.local (wie auch immer der Name sei) eingefügt(*) und die entsprechende Directory-Direktive in meine_httpd.conf.local eingefügt.

Die benötigten Anweisungen sind IIRC AllowOverride und Options; genauer weiß ich es auswendig nicht mehr. Damit wird erlaubt, dass ein bestimmer vSERVER-User wie web1 .htaccess-Dateien verwenden kann, um mod_rewrite zu aktivieren.


Note: Ich schaue nochmal bei meinem Server nach, wie ich es gelöst habe; es kann sein, dass ich die o.g. Konfigurationsdateien gerade etwas durcheinandergeworfen habe. Nichts für ungut. :p


(*) auch wenn dort eine Warnung war, man sollte hinter einer bestimmten Zeile nichts mehr einfügen; es funktioniert genau so
 
Last edited by a moderator:
Elegantly said:
Doch, das funktioniert. Ich habe dies so auf meinem vSERVER konfiguriert.
Man sollte nur beachten, daß man dem jeweiligen User mit dieser Lösung mehr Rechte gibt, als nur mod_rewrite zu nutzen.

huschi.
 
Huschi said:
Man sollte nur beachten, daß man dem jeweiligen User mit dieser Lösung mehr Rechte gibt, als nur mod_rewrite zu nutzen.

huschi.
Da hast du natürlich recht (sic!). Allerdings sind die Rechte eines "AllowOverride FileInfo" auch einigermaßen beschränkt, abgesehen von der ohnehin bestehenden Beschränkung auf das mittels "Directory" angegebene Verzeichnis (und dessen Unterverzeichnisse). Notfalls muss man die Redirects eben global einrichten; diese Aufgabe muss dann jedoch der Administrator des Servers durchführen; einzelne vUser wie web1 können/dürfen dies nicht.

Es ist eben alles eine Frage des Tradeoffs Bequemlichkeit/Features <-> Security. Die o.g. Alternative bietet immerhin ein Mindestmaß an Sicherheit, da man die für mod_rewrite erforderlichen Rechte auf einzelne Verzeichnisse/User einschränken kann.
 

Back
Top