Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [Apache, Mod Rewrite] Umschreiben -> umleiten -> umschreiben (https://www.delphipraxis.net/75837-%5Bapache-mod-rewrite%5D-umschreiben-umleiten-umschreiben.html)

Thorben77 25. Aug 2006 16:48


[Apache, Mod Rewrite] Umschreiben -> umleiten -> umsch
 
Moin moin.

Es gibt zwar sicher geeignetere Foren, aber ich hoffe mal es gibt hier genug Leute, die mir meine Frage beantworten können :wink: .

Also:
Um bei einem Kalender den angezeigten Monat und das Jahr auswählen , hab ich folgendes Formular:
Code:
<form action="" method="get">
   



      <select size="1" id="month" name="month">
         <option label="Januar" value="1">Januar</option>
         <option label="Februar" value="2">Februar</option>
         ...
      </select>

      <select size="1" id="year" name="year">
         <option label="2006" value="2006">2006</option>
         <option label="2007" value="2007">2007</option>
         ...
      </select>
      <input type="submit" value=">" />
   </p>
</form>
Damit die URLs aber "lesbarer" sind, will ich sie eigentlich umschreiben lassen und dann umleiten:
Code:
RewriteRule ^Termine/\?month=([1|2|3]?[0-9])&year=([1-9][0-9][0-9][0-9])$ Termine/$2/$1/ [NC,R=303]
Das wird dann nochmal umgeschrieben:
Code:
RewriteRule ^Termine/([1-9][0-9][0-9][0-9])/([1|2|3]?[0-9]/$ events/?year=$1&month=$2 [NC]
Passieren tut aber nach dem Klick auf den Submit-Button nix, die Adresse verändert sich nicht :gruebel: . Und es gibt auch keine Endlosschleife, was ich ja nachvollziehen könnte.

Meine Frage(n) also:
Warum?

Ist ein Fehler in den RewriteRules? Muss das & oder das = auch "escaped" werden?
Kann man die Adresse so mit Parametern gar nicht umschreiben und umleiten lassen?

Gibt es möglicherweise eine andere Lösung für mein Problem?
MfG

r2c2 26. Aug 2006 08:14

Re: [Apache, Mod Rewrite] Umschreiben -> umleiten -> u
 
Hallo Thorben :hi:

Könnte es daran liegen?
Code:
<form action="" method="get">
In action sollte schon was stehen, damit was passiert...

Ansonsten zeig mal mehr von deiner .htaccess...

mfg

Christian

alcaeus 26. Aug 2006 09:28

Re: [Apache, Mod Rewrite] Umschreiben -> umleiten -> u
 
Moin,

@r2c2: wenn in action nichts drin steht, wird die aktuelle URL verwendet. Besser ist es aber, eine URL anzugeben, da hast du Recht ;)

@Thorben: wenn du es effektiv machen willst, dann lass es :P
Du zwingst den Server hier in Extrarunden: Der Client schickt das Formular ab, der Server sieht die URL, schreibt sie um, schickt den 30x Redirect an den Client, da schickt der Browser die neue URL an den Server, der Server kriegt die, muss sie wieder umschreiben und dann verarbeiten. Da mod_rewrite in Verbindung mit .htaccess von Haus aus nicht die schnellste/optimierteste/resourcenschonende Methode ist, URLs umzuschreiben, solltest du auf den ersten Schritt verzichten. Setz doch method von deinem Form auf post, dann sieht der Benutzer gar nichts; im Header stellst du dann die umgeschriebene URL rein, damit der Benutzer diese URL auch weitergeben kann.

Greetz
alcaeus

Thorben77 27. Aug 2006 17:49

Re: [Apache, Mod Rewrite] Umschreiben -> umleiten -> u
 
Hey :hi: ,
erstmal danke Euch beiden.

Zitat:

Zitat von r2c2
In action sollte schon was stehen, damit was passiert...

Wie alcaeus geschrieben hat, geht's auch so, ich werd aber trotzdem noch was reinschreiben.

Zitat:

Zitat von alcaeus
Wenn du es effektiv machen willst, dann lass es :P [...]

Na gut, dann werd ich's seinlassen und mich mit den "hässlichen" URLs abfinden. Ich will ja den Server nicht allzusehr in's Schwitzen bringen :stupid: .

MfG

alcaeus 27. Aug 2006 17:59

Re: [Apache, Mod Rewrite] Umschreiben -> umleiten -> u
 
Naja, mach nen POST anstatt GET, und deine URLs sind schoener, weil dann nur noch das drinsteht, was im action-feld drinsteht :)

Greetz
alcaeus


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz