Links mit Variablen automatisch in ModRewrite fähige URLs umwandeln

hpatrick

Grünschnabel
Hallo,

ich hab ein Problem:

Und zwar möchte ich gerne ebenfalls das Modul mod-Rewrite nutzen. Das funktioniert auch alles schön und gut, nur leider sind viele, viele Links in den ganzen PHP Skripten, den Templates und auch der Datenbank bereits in der alten Form gespeichert.

Ich hab mal angefangen und versucht alle zu ersetzen, was aber im Prinzip sinnlos war (-> zu viele Links).

Gibt es eine Möglichkeit, die Links "On-The-Fly", also direkt, wenn ein Benutzer die Seite aufruft, dementsprechend zu ändern, oder ist dies nicht möglich?

Natürlich kenn ich alle Variablen, die in der URL vorhanden sein können.


Wie kann ich hier vorgehen?
 
Du könntest in deinen Seiten eingangs den Ausgabepuffer aktivieren, und am Ende jedes Skriptes den String, der sich im Puffer befindet, mit regulären Ausdrücken nach Links durchsuchen und diese ändern.

Ob der Einbau dieser Sache jedoch einfacher ist, als alle Links per Hand zu Ändern, ist fraglich.

Eine andere Möglichkeit sehe ich nicht, da die Links ja offensichtlich dynamisch erzeugt werden und nicht statisch in den Skripten stehen.
 
Also dynamisch in dem Sinne werden Sie nicht erzeugt, da hab ich mich vielleicht falsch ausgedrückt.

Die Links stehen sowohl in der Datenbank als auch in den Templates direkt drin, sprich PHP fügt keine Variable hinzu oder ändert Sie.
In den PHP Datein stehen die Links "indirekt" drin. Also die Inhalte für die Variablen werden noch mit PHP dynamisch eingefügt. Beispiel:

So steht das bspw. in den Templates
HTML:
[...]href="index.php?id=5&action=write&highlight=test"[...]

So steht das bspw. in den PHP Dateien
PHP:
[...]href="index.php?id=".$id."&action=".$action."&highlight=".$highlight."[...]

Problem hier nur, nicht in jeder PHP Datei, bzw. in jedem Link werden alle Variablen mit benutzt. Es kann bspw. Vorkommen, dass nur die ID mit übergeben wird.
 
Na wenn es so ist, dann würde sich eher anbieten, das gleich neu in die Dateien zu schreiben.
Du könntest das auch mit PHP machen... die Vorgehensweise wäre analog zu der beschriebenen mit dem Ausgabepuffer..

Du machst ein Skript, welches jedes einzelne PHP-Skript und Template auf dem Server öffnet und änderst dann anhand regulärer Ausdrücke die entsprechenden Passagen...dasselbe dann nochmal in der DB.

Auf jeden Fall würd ich aber von allem ein Backup erstellen...man kann ja nie wissen :-)
 
Zurück