Probleme mit mod_rewrite
Stefan
- webserver
0 Sven Rautenberg
Hallo,
ich habe nun den ganzen Tag an mod_rewrite herumprobiert ohne wirklich eine Lösung gefunden zu haben. Viell kann mir hier wer helfen :-/
Ich möchte nichts weiter als http://www.domain.de/string.html in http://www.domain.de/script.php?str=string verwandeln. Aber es will nicht :-(
Zu meiner Konfiguration:
www.domain.de zeigt auf meinen Server. Dort ist ein vhost Eintrag dafür:
-->
NameVirtualHost *
<VirtualHost *>
ServerName www.domain.de
DocumentRoot /home/user/public_html/domain
</VirtualHost>
Ein Eintrag fürs Verzeichnis:
<Directory /home/user/public_html/domain>
RewriteEngine on
RewriteRule ^(.*)$ $1
</Directory>
<--
Und genau da scheiterts.
RewriteRule ^(.*)$ $1 funktioniert, aber macht natürlich nicht was ich will:
http://www.domain.de/string.html -> http://www.domain.de/string.html
Logisch wäre mir zB folgendes vorgekommen: RewriteRule ^(.*).html$ /script.php?str=$1 geht aber nicht :-(
Habe die verschiedensten Varianten probiert (zB auch RewriteRule ^.*/(.*).html$ /script.php?str=$1), aber es scheitert schonmal daran, daß ich nichtmal genau weiß wie das ausschaut was ich da filtere. Wird die gesamte URL (http://www.domain.de/string.html) gefiltert, oder der Pfad am Server (/home/user/public_html/domain), oder nur string.html? Ich habe das nicht herausfinden können :-/
Kann mir da bitte bitte jemand einen Tip geben?
Danke
Stefan
Moin!
Zu meiner Konfiguration:
...die fehlerhaft ist.
-->
NameVirtualHost *
<VirtualHost *>
ServerName www.domain.de
DocumentRoot /home/user/public_html/domain
</VirtualHost>
Ein Eintrag fürs Verzeichnis:
<Directory /home/user/public_html/domain>
RewriteEngine on
RewriteRule ^(.*)$ $1
</Directory>
<--Und genau da scheiterts.
Richtig, aber anders, als du glaubst - glaube ich.
Dein Directory fühlt sich nicht zuständig für den VHost, weil es außerhalb steht. IMO.
Zumal Rewriting sowieso in <Directory> nichts verloren hat, weil es ausschließlich mit URLs arbeitet, nicht mit Dateien.
RewriteRule ^(.*)$ $1 funktioniert, aber macht natürlich nicht was ich will:
Haha, guter Witz: Wie unterscheidest du, ob das Rewriting hier arbeitet, oder ob es einfach komplett ignoriert wird? Jedenfalls nicht am URL-Ergebnis, würde ich meinen. Rewrite-Logging eingeschaltet?
Logisch wäre mir zB folgendes vorgekommen: RewriteRule ^(.*).html$ /script.php?str=$1 geht aber nicht :-(
Wie gesagt: Rewriting im falschen Container kann einem den ganzen Tag versauen.
Habe die verschiedensten Varianten probiert (zB auch RewriteRule ^.*/(.*).html$ /script.php?str=$1), aber es scheitert schonmal daran, daß ich nichtmal genau weiß wie das ausschaut was ich da filtere. Wird die gesamte URL (http://www.domain.de/string.html) gefiltert, oder der Pfad am Server (/home/user/public_html/domain), oder nur string.html? Ich habe das nicht herausfinden können :-/
Du kriegst den URL-Pfad beginnend mit /, ohne Sondermaßnahmen sogar ohne GET-Parameter, zum Rewriting.
- Sven Rautenberg
Wie gesagt: Rewriting im falschen Container kann einem den ganzen Tag versauen.
Auwaia :-/ Da hab ich wohl Mist gebaut. In welchen Container sollte das dann rein?
Danke
Stefan
Ich würde die Rewrite-Rulesn nicht mal in die Konfigurationsdatei packen, sondern in die .htaccess im entsprechenden Verzeichnis. Damit spart man sich bei Änderungen den etwas lästigen Neustart.
Gruß
Stareagle
Moin!
Ich würde die Rewrite-Rulesn nicht mal in die Konfigurationsdatei packen, sondern in die .htaccess im entsprechenden Verzeichnis. Damit spart man sich bei Änderungen den etwas lästigen Neustart.
Man verschenkt aber auch eine ganze Menge Performance.
- Sven Rautenberg
Arg, habs in den vhost getan und es funzt :-/
Danke dir vielmals!!