Hallo, ich schlage mich seit mit laengerem mit RewriteCond und RewriteRule herum. Immerhin bin ich inzwischen so weit, dass der Apache2 RewriteRules akezptiert. D.h. folgendes funktioniert: RewriteEngine on RewriteRule ^(.*).html$ $1.php [R] Aber nun soll diese Regel _nicht_ fuer Dateien im Verzeichnis stats angewandt werden. Doch ein RewriteEngine on RewriteCond %{REQUEST_URI} !^/stats/(.*html)$ RewriteRule ^(.*).html$ $1.php [R] erreicht das leider nicht. Lt. RewriteLog wird nur die RewriteRule abgearbeitet. Das ganze koennte uebrigens auch mit RedirectMatch erledigt werden, aber das scheint mir noch komplizierter. Und es muss eine Regel sein, die den Server moeglichst wenig belastet. Beste Gruesse, Heinz. -- Reisefuehrer Bulgarien u.a: http://www.erlebnis-bulgarien.de Reiseberichte Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
On Sunday 18 June 2006 22:10, Heinz W. Pahlke wrote:
Doch ein
RewriteEngine on RewriteCond %{REQUEST_URI} !^/stats/(.*html)$ RewriteRule ^(.*).html$ $1.php [R]
erreicht das leider nicht. Lt. RewriteLog wird nur die RewriteRule abgearbeitet.
Dreh mal an RewriteLogLevel, dann siehst Du auch die RewriteCond. Alternativ könntest Du mal folgende 2 Regeln ohne RewriteCond probieren (ungetestet): RewriteRule ^/stats/ - [L] RewriteRule ^(.*).html$ $1.php [R] Die erste sagt, wenn die Uri mit /stats/ beginnt, ändere sie nicht. Wenn diese Regel zutrifft, ist sie die letzte. Torsten -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo, On 19-Jun-2006 Torsten Foertsch wrote:
On Sunday 18 June 2006 22:10, Heinz W. Pahlke wrote:
Doch ein
RewriteEngine _on RewriteCond %{REQUEST_URI} !^/stats/(.*html)$ RewriteRule ^(.*).html$ $1.php [R]
erreicht das leider nicht. Lt. RewriteLog wird nur die RewriteRule abgearbeitet.
Und selbst die RewriteRule ohne RewriteCond funktioniert heute nicht mehr :-(( Als ich gestern die Frage an die Liste schickte, ging es noch. Und danach habe ich nichts mehr am Apache2 getan, weil mir nichts sonnvolles mehr einfiel.
Dreh mal an RewriteLogLevel, dann siehst Du auch die RewriteCond.
Hatte ich schon auf 9 gesetzt. Und natuerlich auch (wie nach jeder Aenderung) rcapache restart ausgefuehrt.
Alternativ könntest Du mal folgende 2 Regeln ohne RewriteCond probieren (ungetestet):
RewriteRule ^/stats/ - [L] RewriteRule ^(.*).html$ $1.php [R]
Die erste sagt, wenn die Uri mit /stats/ beginnt, ändere sie nicht. Wenn diese Regel zutrifft, ist sie die letzte.
Und auch alleine auf diese bekomme ich einen Error 404, wenn ich "http://kontakty/index.html" aufrufe :-( Ist auch klar, denn gesucht wird "http://kontakty/home/heinz/homepages/kontakte-kontakty.de/index.php", obwohl es "http://kontakty/index.php" heissen muesste :-(( Hier die Logdatei: -----------------------------------8<--------------------------------- 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#8037b6c8/initial] (3) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] strip per-dir prefix: /home/heinz/homepages/kontakte-kontakty.de/index.html -> index.html 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#8037b6c8/initial] (3) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] applying pattern '^(.*).html$' to uri 'index.html' 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#8037b6c8/initial] (2) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] rewrite index.html -> index.php 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#8037b6c8/initial] (3) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] add per-dir prefix: index.php -> /home/heinz/homepages/kontakte-kontakty.de/index.php 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#8037b6c8/initial] (2) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] explicitly forcing redirect with http://kontakty/home/heinz/homepages/kontakte-kontakty.de/index.php 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#8037b6c8/initial] (1) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] escaping http://kontakty/home/heinz/homepages/kontakte-kontakty.de/index.php for redirect 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#8037b6c8/initial] (1) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] redirect to http://kontakty/home/heinz/homepages/kontakte-kontakty.de/index.php [REDIRECT/302] 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#803776b8/initial] (3) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] add path info postfix: /home/heinz/homepages/kontakte-kontakty.de/home -> /home/heinz/homepages/kontakte-kontakty.de/home/heinz/homepages/kontakte -kontakty.de/index.php 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#803776b8/initial] (3) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] strip per-dir prefix: /home/heinz/homepages/kontakte-kontakty.de/home/heinz/homepages/kontakte -kontakty.de/index.php -> home/heinz/homepages/kontakte-kontakty.de/index.php 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#803776b8/initial] (3) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] applying pattern '^(.*).html$' to uri 'home/heinz/homepages/kontakte-kontakty.de/index.php' 127.0.0.1 - - [19/Jun/2006:08:55:12 +0200] [kontakty/sid#80211430][rid#803776b8/initial] (1) [per-dir /home/heinz/homepages/kontakte-kontakty.de/] pass through /home/heinz/homepages/kontakte-kontakty.de/home ----------------------------------->8--------------------------------- Wie gesagt, gestern funktionierte es noch. Beste Gruesse, Heinz. -- Reisefuehrer Bulgarien u.a: http://www.erlebnis-bulgarien.de Reiseberichte Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo, On 19-Jun-2006 Heinz W. Pahlke wrote:
Hallo,
On 19-Jun-2006 Torsten Foertsch wrote:
On Sunday 18 June 2006 22:10, Heinz W. Pahlke wrote:
Doch ein
RewriteEngine _on RewriteCond %{REQUEST_URI} !^/stats/(.*html)$ RewriteRule ^(.*).html$ $1.php [R]
erreicht das leider nicht. Lt. RewriteLog wird nur die RewriteRule abgearbeitet.
Und selbst die RewriteRule ohne RewriteCond funktioniert heute nicht mehr :-((
Aber ein RewriteEngine on RewriteRule (.*).html$ $1.php [R] tut es jetzt wieder.
Alternativ könntest Du mal folgende 2 Regeln ohne RewriteCond probieren (ungetestet):
RewriteRule ^/stats/ - [L] RewriteRule ^(.*).html$ $1.php [R]
Und wenn ich die veraendere in RewriteEngine on RewriteRule stats/ - [L] RewriteRule (.*).html$ $1.php [R] funktioniert es endlich wie gewuenscht. Bloss warum muss das fuehrende ^ entfernt werden? Nachdem, was ich gestern in der ganzen Doku zum Apache und in den diversen Foren usw. gelesen habe, sollte es doch anders sein? Beste Gruesse, Heinz. -- Reisefuehrer Bulgarien u.a: http://www.erlebnis-bulgarien.de Reiseberichte Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
On Monday 19 June 2006 09:27, Heinz W. Pahlke wrote:
Und wenn ich die veraendere in
RewriteEngine on RewriteRule stats/ - [L] RewriteRule (.*).html$ $1.php [R]
funktioniert es endlich wie gewuenscht. Bloss warum muss das fuehrende ^ entfernt werden? Nachdem, was ich gestern in der ganzen Doku zum Apache und in den diversen Foren usw. gelesen habe, sollte es doch anders sein?
Machst Du das Ganze in einem .htaccess oder so ähnlich? Dort reagieren die Regeln anders als direkt im httpd.conf außerhalb jeglichen <Directory>-Blocks. mod_rewrite kann 2 Arten der Umsetzung. Die erste findet in der UriTranslation-Phase statt. Hier greifen RewriteRules, die außerhalb jeglicher <Directory>-Angaben definiert sind. Bei diesen kannst Du auf ^/... testen. Die 2. Umsetzung findet viel später in der Fixup-Phase statt. Hier sind RewriteRules aus <Directory>-Blocks und .htaccess-Files dann schon bekannt. In diesem Schnitt schneidet mod_rewrite vor dem Vergleich die Directory, in der er das .htaccess fand, von der Uri ab, siehe auch RewriteBase (oder so). Torsten
Hallo, On 19-Jun-2006 Torsten Foertsch wrote:
On Monday 19 June 2006 09:27, Heinz W. Pahlke wrote:
Und wenn ich die veraendere in
RewriteEngine _on RewriteRule stats/ - [L] RewriteRule (.*).html$ $1.php [R]
funktioniert es endlich wie gewuenscht. Bloss warum muss das fuehrende ^ entfernt werden? Nachdem, was ich gestern in der ganzen Doku zum Apache und in den diversen Foren usw. gelesen habe, sollte es doch anders sein?
Machst Du das Ganze in einem .htaccess oder so ähnlich? Dort
In der .htaccess. Bei mir koennte ich es zwar auch in die httpd.conf setzen, aber ich teste hier nur, um es dann auf den Server beim ISP uebertragen zu koennen. Dort habe ich aber keinen Zugriff auf die httpd.conf.
reagieren die Regeln anders als direkt im httpd.conf außerhalb jeglichen <Directory>-Blocks. mod_rewrite kann 2 Arten der Umsetzung. Die erste findet in der UriTranslation-Phase statt. Hier greifen RewriteRules, die außerhalb jeglicher <Directory>-Angaben definiert sind. Bei diesen kannst Du auf ^/... testen. Die 2. Umsetzung findet viel später in der Fixup-Phase statt. Hier sind RewriteRules aus <Directory>-Blocks und .htaccess-Files dann schon bekannt. In diesem Schnitt schneidet mod_rewrite vor dem Vergleich die Directory, in der er das .htaccess fand, von der Uri ab, siehe auch RewriteBase (oder so).
Danke fuer die Erklaerung, auch wenn ich noch nicht so ganz durchblicke. Leider gibt es die Apache-Doku zu einem grossen Teil nur in englisch und da verstehe ich das meiste bestenfalls rudimentaer. Deshalb kann ich meistens nur die verschiedenen Loesungsvorschlaege austesten. Ob es mit der .htaccess auch beim ISP klappt, kann ich erst heute nacht probieren. Das Rueckgaengigmachen von nicht funktionierenden Aenderungen geht zwar immer schnell, aber schoen ist es trotzdem nicht, wenn die Seiten zu den Hauptzugriffszeiten kurzzeitig nicht erreichbar sind. Beste Gruesse, Heinz. -- Reisefuehrer Bulgarien u.a: http://www.erlebnis-bulgarien.de Reiseberichte Osteuropa: http://www.pahlke-online.de Barrierefreies Webdesign: http://www.Pahlke-KunstWebDesign.de -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
participants (2)
-
Heinz W. Pahlke
-
Torsten Foertsch