Konrad L. M. Rudolph: [mod_rewrite] Kanonische URI: „www“ verhindern

Beitrag lesen

Moin,

RewriteRule (.*) http://example.com/$1 [R=permanent,L]
Dann schreibe alles, was nach dem trailing slash kommt (also "wiki/Wikipedia" aus obigen Beispiel) ans Ende von  "http://example.com/" und leite den werten User weiter mit Permanent-Code, wobei dies die letzte Regel war (Auswirkungen siehe http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#rewriterule). Habe das nie gebraucht bzw. verstehe nicht wozu man es konkret gebrauchen könnte, kann mir also kein Szenario vorstellen, in dem das für mich nützlich wäre. Bin daher mal einfach der Ansicht, dass das L das Problem darstellen könnte.

Also, das „L“ hat ganz konkrete Anwendungen und ich habe es auch schon gebraucht um zu verhindern, dass weitere Redirects ausgeführt werden. Und im vorliegenden Fall soll es auch die letzte Regel sein, wobei sie das auch ohne „L“ sowieso sein sollte, da danach ja das 301 gesandt wird.

Ist aber auch egal: Weglassen des „L“ führt hier auch zu nichts. :-/

Habe ich das richtig verstanden?
http://www.example.com/dir/index.htm und in dir ist nochmal eine .htaccess?

Na ja, ohne „index.htm“ (oder dergleichen), aber ansonsten ja.

Weiß jemand, woran das liegen könnte?
Ohne die Rules und Conds in dem Unterverzeichnis kA

Bitte sehr:

  
RewriteBase /my  
RewriteRule ^key$ key.pub.asc [T=text/plain]  
RewriteRule ^id$ phpmyid/MyID.config.php  
RewriteRule ^ids$ ids.xrds  

Und bevor die Vermutung kommt: Nein, es liegt nicht am 'RewriteBase', wenn ich das weglasse, ist das Verhalten identisch.

Ein paar Beispiele für Anfragen und entsprechende Umleitungen wären noch hilfreich :)

Öh, sicher, dass Du den Sinn des Redirects verstanden hast? Dann sollte sich das erübrigen … aber na gut:

http://example.com/             => [Kein Redirect]
http://www.example.com/         => http://example.com/
http://example.com/abc/         => [Kein Redirect]
http://www.example.com/abc/     => http://example.com/abc/
http://www.example.com/abc/?f=b => http://example.com/abc/?f=b
http://www.example.com/nichtda/ => http://example.com/nichtda/
http://www.example.com/my/      => [Kein Redirect]

Wobei die ersten sechs Zeilen gewolltes Verhalten sind, die letzte Zeile ist der Fehler, hier sollte ein Redirect nach http://example.com/my/ erfolgen. Im Ordner „my“ befindet sich eine .htaccess-Datei mit 'RewriteRule's, im Ordner „abc“ befindet sich ebenfalls eine .htaccess-Datei, aber ohne Rewrites. „nichtda“ existiert nicht.

lg, Konrad -

--
“It’s a question of style … Sloppy work tends to be habit-forming.”
– Silk in /Castle of Wizardry/ by David Eddings.