Frage von ChrissiNB83, 16

.htaccess gerät in Endlosschleife, wie kann ich ein absolutes Ende kennzeichnen?

Hallo,

mit folgender Regel RewriteRule ^baufinanzierungsforum/users/(.*)/$ baufinanzierungsforum/users/$1/edit/ [R=301,L]

gerät der Server in eine Endlosschleife.

Wie kann ich im ersten Teil der Regel das absolute Ende kennzeichen ($-ist es anscheinend nicht)

Antwort
von WhiteGandalf, 16

Doch, das IST das Ende der Regel.

Für den Server.

Nicht für den Browser.

Du schickst ein 301. Das heißt, dass der Browser nach Anforderung

"baufinanzierungsforum/users/hans/"

die Aufforderung bekommt, doch bitte den Server darum zu bitten, ihm

"baufinanzierungsforum/users/hans/edit/"

auszuliefern, woraufhin ihm der Server sagt, dass er ihn doch darum bitten möge,

"baufinanzierungsforum/users/hans/edit/edit/"

auszuliefern, woraufhin ihm der Server sagt, dass er ihn doch darum bitten möge,

"baufinanzierungsforum/users/hans/edit/edit/edit/"

auszuliefern, woraufhin ...

Wir verstehen uns?

Lass das "301" weg! Lass den Server stillschweigend intern die URL austauschen und liefere genau ein endgültiges Ergebnis an den Browser zurück, so dass dieser von vornherein von dem ganzen Kram nichts mitbekommt. Dann klappt das auch!

Kommentar von ChrissiNB83 ,

das weiss ich, nur wie kann ich die endlosschleife beenden ? die regel soll nur einmal ausgeführt werden.

RewriteRule ^baufinanzierungsforum/users/(.*)/(![edit])$ baufinanzierungsforum/users/$1/edit/ [QSA,L]

Hatte ebenfalls keinen Erfolg.

Kommentar von WhiteGandalf ,

Sollte aber. Ich mache auf den Servern, die ich betreue, auch nichts anderes.

Schalte mal Debugging für die Rewrite Engine ein (RewriteLogLevel 2 - Regelanwendungen (rewrites und redirects))! Und ergänze sowas wie

  RewriteLog "/var/log/apache/rewrite.log"

oder wo auch immer bei Dir die Logs liegen...

Keine passende Antwort gefunden?

Fragen Sie die Community