mod_rewrite für apache2 (update)
Umlüx 04.04.2013 - 08:43 3161 18
Umlüx
Huge Metal Fan
|
vorgestern habt ihr mir schon erfolgreich mit meinem mysql problem geholfen, heut brauch ich schon wieder eure hilfe ... es geht um einen apachen auf debian den wir (bzw mein kollege) für einen externen dienstleister eingerichtet haben. dieser baut uns eine webanwendung und braucht dafür mod_rewrite aktiviert. ich mit meinen nicht vorhandenen linux skills hab natürlich gleich fleissig nach tutorials gesucht.. scheinbar recht einfach die ganze sache. "rewrite.load" aus dem "mods-available" verzeichnis ins "mods-enabled" kopieren oder linken, apache restart.. done. kann man scheinbar auch mit einem eigenen command machen. versuchen wirs einfach mal: root@www:/etc/apache2# a2enmod rewrite
Module rewrite already enabled
klingt gut! so, laut tutorial jetzt noch ein 'AllowOverride All' in die /etc/apache2/sites-enabled/000-default eintragen und... 500er Fehler.. schaun wir in die error.log: /var/www/test/.htaccess: Invalid command 'sRewriteRule', perhaps misspelled or defined by a module not included in the server configuration
jetzt steh ich etwas an und komm selbst mit googlen auch nicht wirklich weiter. wo könnts da nun hängen? oder liegt der fehler vielleicht auch auf 'seiner' seite? hat er sich vielleicht einfach nur vertippt? google fängt mit 'sRewriteRule' nix an... big thx! EDIT sagt: war sein fehler. wie ich oben schon vermutet hatte.. EDIT2: eins hab ich immer noch mir fehlt nun die variable $_SERVER['SCRIPT_URI'] Mod_Rewrite und RewriteEngine sind aber beide on...
Bearbeitet von Umlüx am 04.04.2013, 14:18
|
Paxi
Overclocking Team Member
|
Mach mal ein var_dump($_SERVER) oder print_r($_SERVER) um zu sehen welche Variablen alle gesetzt sind im $_SERVER array. Falls du zufällig den Hostname auslesen willst, versuchs mal mit $_SERVER['HTTP_HOST'] Schau mal hier rein: http://www.nullpointer.at/2011/01/1...piel-soap-wsdl/ das steht so einiges dazu, rewrite_module muss geladen und aktiv sein und es muss ein virtueller Host sein.
|
Umlüx
Huge Metal Fan
|
danke, die seite hatte ich auch gefunden. und sie hat mich beinhart belogen! es geht mittlerweile. die oben verlinkte seite meint Wenn das Modul geladen ist, muss es noch mit RewriteEngine on aktiviert werden. Dies kann sowohl in der Konfigurationsdatei des Apache Webservers erfolgen als auch in einer .htaccess Datei im jeweiligen Script Verzeichnis. ... von wegen. in der .htaccess (wie es auch konfiguriert war) aktiviert gibts die variable nicht. sehr wohl aber in dder konfiguration des virtualhosts..
|
kleinerChemiker
Here to stay
|
kann man normalerweise sehr wohl in der .htaccess aktivieren.
|
COLOSSUS
AdministratorGNUltra
|
Nicht notwendigerweise - das kommt auf die Konfiguration von AllowOverride fuer den htaccess/Directory-Context an; iirc braucht man "FileInfo" und "Options" dafuer.
|
Umlüx
Huge Metal Fan
|
steht momentan auf ALL vermutlich greift es daher nicht in der .htaccess
|
COLOSSUS
AdministratorGNUltra
|
"All" impliziert alle anderen Overrides, das kann bei dir also nicht das Problem sein.
|
Umlüx
Huge Metal Fan
|
ok dann ist meine stark begrenzte apache weisheit erschöpft
|
kleinerChemiker
Here to stay
|
hast du den Indianer auch neu gestartet, nachdem du seine config geändert hast?
|
Umlüx
Huge Metal Fan
|
also soviel weiss ich klar
|
COLOSSUS
AdministratorGNUltra
|
Ich verstehe die (neue) Ausgangsfrage des Threads nicht ganz - $_SERVER['SCRIPT_URI'] ist PHP-Syntax (und schleift lediglich eine laut CGI-Spezifikation benoetigte Environment-Variable zum CGI-Script-Interpreter durch; mod_php emuliert das), und hat in der Apache-Konfiguration nichts verloren. Was versuchst du zu erreichen?
Ein restart von Apache ist zu Konfigurationsaenderungen nur in absoluten Ausnahmefaellen notwendig (neue Module aktiviert/deaktiviert z. B.); fuer sowas reicht ein reload.
|
Umlüx
Huge Metal Fan
|
aber $_SERVER['SCRIPT_URI'] entsteht scheinbar erst durch mod_rewrite. und entgegen dem oben verlinkten artikel war die variable bei "RewriteEngine on" in der .htaccess NICHT vorhanden.
|
mat
AdministratorLegends never die
|
aber $_SERVER['SCRIPT_URI'] entsteht scheinbar erst durch mod_rewrite. und entgegen dem oben verlinkten artikel war die variable bei "RewriteEngine on" in der .htaccess NICHT vorhanden. Meinst du vielleicht $_SERVER['REQUEST_URI']? Hier findest du eine Liste aller Superglobals in PHP, wobei es natürlich auch auf die Webserver-Konfiguration ankommt, welche davon wirklich verfügbar sind. Bezüglich der Verfügbarkeit von "RewriteEngine" solltest du dich an die Apache-Dokumentation halten. Und die sagt: Context: server config, virtual host, directory, .htacces Wenn das nicht funktioniert, dann wird irgendwo anders der Wurm drinnen sein. Irgendwo wird zB das AllowOverride wieder überschrieben und dergleichen. Wenn du aber ohnehin Zugriff per SSH hast, dann würde ich sowieso .htaccess ausschalten und über Location arbeiten.
|
Umlüx
Huge Metal Fan
|
nein ich mein schon script_uri das ganze ist ja auch nicht auf meinem mist gewachsen und das web bau ich auch nicht. ich muss hier nur die vorraussetzungen schaffen.
|
mat
AdministratorLegends never die
|
nein ich mein schon script_uri das ganze ist ja auch nicht auf meinem mist gewachsen und das web bau ich auch nicht. ich muss hier nur die vorraussetzungen schaffen. Wofür brauchst du es genau? Es gibt Alternativen.
|