Antworten auf deine Fragen:
Neues Thema erstellen

URL-Parameter Dynamish mit Slash

Ben78

Nicht mehr ganz neu hier

Hi PSD-Leutz,

ich versuche seit ca. zwei Tagen und Nächten aus folgender URL:
HTML:
http://domain.de/unterseite.html?param1=wert1&param2=wert2&param3=wert3


...folgende zu generieren:

HTML:
http://domain.de/unterseite.html/wert1/wert2/wert3.html


Das ganze probiere ich seit ca. zwei Tagen mittels .htaccess via Mod_Rewrite bzw. RewriteRule wie z. B. folgt aus:

Code:
RewriteBase / 
RewriteCond %{QUERY_STRING} param1=(.*) param2=(.*) param3=(.*) 
RewriteRule ^unterseite.html$ unterseite.html? [R=302,L] [QSA]

...oder z. B. ... :
Code:
RewriteRule ^([a-z]+)\.html$ /unterseite.html?param1=$1 param2=$2 param3=$3 [QSA]

...oder z. B.:
Code:
RewriteRule /unterseite.html/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+).html /unterseite.html?param1=$1&param2=$2&param3=$3


Bei diesen Beispielen handelt es sich um mein ich glaube mind. 20er Versuch...!?! Weiter komm ich auch mit Hilfe der großen Tante nicht mehr...Mir rauchen die Aguen, die Haare und vor allem meine Nerven bzw. mein Gehirn...

Es handelt sich um eine Blätter- und Sortierfunktion. Die "unterseite.html" ist dynamisch und enthält eine Ausgabtabelle.

Um mich kurz und knapp zu fassen: Ich hätte es gerne so wie in diesem bzw. unserem Forum (PSD-tutorials.de/forum/...) wenn man auf ein Themengebiet klickt und dann auf die Ergebnisseite mit allen Themen zum Themengebiet gelangt wo man Blättern oder sortieren kann und die URL dann so aussieht:
HTML:
http://www.psd-tutorials.de/forum/45_php-und-andere-scriptsprachen/index3.html
...und sich beim Blättern nur die Seitenzahl ändert. Als Beispiel mal .


PLS SBDY HLP...PLS
 

Duddle

Posting-Frequenz: 14µHz

AW: URL-Parameter Dynamish mit Slash

Du kannst sowas online z.B. hier testen: Dann musst du nicht immer die .htaccess editieren usw.

Jedenfalls ist deine Regel
Code:
RewriteRule /unterseite.html/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+).html /unterseite.html?param1=$1&param2=$2&param3=$3
in einem klitzekleinen Punkt falsch: der Slash am Anfang ist nicht Teil der Anfrage-URL (du rufst nicht /unterseite.html sondern unterseite.html auf). Sobald du den weglässt
Code:
RewriteRule unterseite.html/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+).html /unterseite.html?param1=$1&param2=$2&param3=$3
funktioniert das ganze in o.g. Tester.

Du kannst die Regel aber u.a. vereinfachen, indem du das Zeichen für beliebige Zeichen nimmst, falls das akzeptabel ist:
Code:
RewriteRule unterseite.html/(.+)/(.+)/(.+).html /unterseite.html?param1=$1&param2=$2&param3=$3
Noch schicker wäre es mit Beginn- und Ende-Zeichen (^ und $), das verhindert mgl. Fehlerquellen:
Code:
RewriteRule ^unterseite.html/(.+)/(.+)/(.+).html$ /unterseite.html?param1=$1&param2=$2&param3=$3

Edit: gleiches mit dem Slash am Anfang gilt auch für das Rewrite-Ziel, dort muss der auch nicht stehen.


Duddle
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Code:
RewriteRule ^unterseite.html/(.+)/(.+)/(.+).html$ /unterseite.html?param1=$1&param2=$2&param3=$3

...funtz irgendwie nicht. Ich habe das jetzt so in meiner .htaccess-Datei stehen. Und wenn ich jetzt auf meine Seite gehe, dort die Blätterfuntkion oder Sortierfunktion betätige, erscheinen in der Adressleiste nach wie vor sämtliche Parameter-Bezeichnungen mit Istgleich- und Fragezeichen.
Das tool zum testen überblicke ich nicht ganz, bin aber grad noch am rumexperimentieren mit dem Tool.

Unterseite.html und Param... sind in meiner .htaccess natürlich entsprechend bezeichnet.
 

Duddle

Posting-Frequenz: 14µHz

AW: URL-Parameter Dynamish mit Slash

Naja, die Links musst du ja entsprechend abändern. Das Umschreiben der URL mit
Code:
RewriteRule foo/bar/ foo.html?x=bar
bedeutet einfach, dass alles im Format foo/bar/ intern wie foo.html?x=bar behandelt wird. Dann funktionieren beide URLs exakt gleich.
Das ändert deine aufgerufenen Links in den Dokumenten oder Scripten aber nicht.


Duddle
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Aber so entstehen doch dann zwei identische Seiten mit unterschiedlichen URL's...darf doch nicht passieren...oder?
 

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Wieso entstehen unterschiedliche Seiten?
Ich glaub du hast die Funktionsweise von mod_rewrite noch nicht ganz verstanden.

Es wird die Eingabe umgeschrieben, das heißt der geklickte Link ist /foo/bar/ und beim Skript kommt foo.html?x=bar an, wo und warum da zwei Seiten entstehen kann ich nicht nachvollziehen.

Wichtig ist nur, dass du deine Links (<a href="") dementsprechend abänderst wie der User es sehen soll (also /foo/bar/). Vorher bringt dir keine RewriteRule der Welt etwas.

MfG
Dark
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

OK OK...
Die gewünschte Darstellung der URL's muss also via html bzw. php generiert werden. Und mit mod_rewrite sage ich quasi nur: das "domain.de/unterseite.html?param=wert" das selbe ist wie "unterseite/wert.html"...komm ich ungefähr hin mit meinem Verständnis?

So sieht z. B. der "eine-seite-weiterblättern" Link aus:
PHP:
E D I T : 16.12.11 
Sorry, aber irgendwie komm ich mir a bissl verarscht vor...Deswegen nehme ich meinen Code hier wieder raus...Is mir eh nicht ganz Geheuer...
ab dem Fragezeichen muss ich doch ansetzen oder??? ersetze ich das Fragezeichen durch ein einfaches Slash??? und wie muss ich hier mit den Params umgehen, dass zwischen ihnen ein Slash oder auch Bindestrich zustande kommt???
 
Zuletzt bearbeitet:

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

So, jetz mach ma da erstmal php draus...

PHP:
$link_blaettern_string = "<a href=\"$pfad?wert_blaettern=$prev&wert1=$wert2&wert3=$var";
                            if(isset($_GET['sortieren'])) $link_blaettern_string .= "&sortieren=".$_GET["sortieren"];
                            if(isset($_GET['asc'])) $link_blaettern_string .= "&asc";
                            elseif(isset($_GET['desc'])) $link_blaettern_string .= "&desc";
$link_blaettern_string .= "\" title=\"Zur&uuml;ck\"><font class=\"no_bg\"> &laquo;&laquo;</font></a>\n";
So ist das deutlich kürzer und übersichtlicher, findest nicht auch?

Ansonsten weiß ich ja nicht wie du deine Parameter jetzt in der htaccess verarbeitest, also bitte noch die RewriteRule die du aktuell einsetzt. Denn aus $wert1, $var usw. wird man nicht wirklich schlau ohne Kontext

MfG
Dark

P.S. den Code habe ich natürlich nicht getestet, er sollte aber exakt das gleiche machen wie das Snippet von dir, nur eine Variable habe ich verändert, das ist $link_string beim Sortieren, ich denke mal das ist ein Tippfehler, sonst machts keinen Sinn...
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Den Code hab ich jetzt mal so übernommen, aber dann funzt meine ganze Seite nicht mehr...!
 

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Wie gesagt, nicht getestet...
Was geht denn nicht? Fehlermeldung oder Beschreibung wär schon ned schlecht.

Geändert habe ich ja nicht viel, nur die Zuweisungsoperatoren (.=) und die Variablen im String habe ich eingebettet (wobei ich gerade sehe, dass deine Variante - konkatenieren - die "korrektere" ist. Ansichtssache, aber Zuweisungsoperatoren sind hier definitiv angebracht.

Wäre halt mal schön wenn du mehr Infos bereitstellst auf welchem Stand deine Arbeit jetzt ist, da Blickt doch keiner mehr durch.
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Es war eine Fatal Error Meldung.

Das Skript läuft einwandfrei. Also Blätterfunktion und Sortierfunktion ist damit gemeint. Alles passt soweit. Das einzige was nicht passt sind die dabei zustande kommenden url's mit Fragezeichen, Params usw. Diese url's möchte ich in die saubere Form bekommen. Also mit Slash zwischen den pfaden.:'( Dieses Thema ist echt übel...seit vier Tagen damit beschäftigt...ich könnt heulen:'(
 

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Da du offenbar keine Lust hast mehr Infos zu bringen schieße ich weiterhin ins Blaue:

htaccess:
RewriteRule ^unterseite/(.*)/(.*)/(.*).html$ /unterseite.html?wert_blaettern=$1&wert1=$2&wert3=$3

So sieht der Link aus:
<a href="unterseite/wert1/wert2/var.html" title="Zur&uuml;ck"><font class="no_bg"> &laquo;&laquo;</font></a>

Das Script erhält dann als Input:
unterseite.html?wert_blaettern=wert1&wert1=wert2&wert3=var
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

OK OK...
Welche Infos werden alle benötigt???

Ich werde nochmals das ganze überarbeiten. Also mit dem geposteten Code und der .htaccess

Meine .htaccess sah vorher anders aus. Eine jede Fehlermeldung werde ich posten...Bis gleich
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Ich bin so ein Trottel...jetzt hab ich vorhin den eins-zurück-blättern-link gepostet und nicht den eins-vor-blättern-link...Is das jetzt ein Problem???
 

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Was kam da jetzt raus mit der überarbeiteten Datei?

Poste am besten den ganzen Code, wenns zuviel wird einfach auf codeviewer.org, dann lass ich das morgen übern Interpreter laufen, sonst wird das nochmal vier Tage nichts... Denk aber dran, dass du Passwörter (mySQL usw.) rausnimmst.

Ich für meinen Teil geh jetz ins Bett, hab nur noch 5 Stunden bis der Wecker rappelt. gn8
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Hey, Gute N8...schade das ich Dich so knapp verpasst habe. Aber Schlaf und Gesundheit gehen nun mal vor!!!...Schlaf tief und gut...!!! Bis morg.

O. K. jetzt gab's keine Fehlermeldung...das Skript läuft nach wie vor einwandfrei.

So sieht jetzt mein "eins-weiterblättern-link" aus. Genauso, wie Du ihn mir vorhin gepostet hast...!!!
PHP:
E D I T : 16.12.11 
Sorry, aber irgendwie komm ich mir a bissl verarscht vor...Deswegen nehme ich meinen Code hier wieder raus...Is mir eh nicht ganz Geheuer...

...und so meine .htaccess:
Code:
E D I T : 16.12.11 
Sorry, aber irgendwie komm ich mir a bissl verarscht vor...Deswegen nehme ich meinen Code hier wieder raus...Is mir eh nicht ganz Geheuer...

Klicke ich nun auf den Weiterblättern-Link, passiert in der Adresszeile gar nichts. Also die URL ist nach wie vor die selbe mit dem Fragezeichen, Params etc.. Also muss ich doch jetzt die Url also den Code welchen Du gepostet hast nur noch in die gewünschte Form umschreiben oder??? Also ganz primitiv zwischen den Params Slashes ranhängen!?! Ich probier's mal aus...die .htaccess muss ich dann auch nochmal anders schreiebn oder...?
 
Zuletzt bearbeitet:

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Also ich hab jetzt mal mehrere Varianten ausprobiert. Hier mal die aktuelle...

Aktuelles Beispiel:

.htaccess:
Code:
RewriteRule ^unterseite/(.*)/(.*)/(.*).html$ /unterseite.html?wert1=$1&wert2=$2&wert3=$3 [QSA]

Ausgangs-Link:
PHP:
E D I T : 16.12.11 
Sorry, aber irgendwie komm ich mir a bissl verarscht vor...Deswegen nehme ich meinen Code hier wieder raus...Is mir eh nicht ganz Geheuer...

Probier-Link:
PHP:
	E D I T : 16.12.11 
Sorry, aber irgendwie komm ich mir a bissl verarscht vor...Deswegen nehme ich meinen Code hier wieder raus...Is mir eh nicht ganz Geheuer...

Der Link wird wie gewünscht dargestellt, nur gibt's hier folgendes Problem...und zwar funzt dann aber so meine Blätterfunktion nicht mehr. Und wenn z. B. Parameter2 nicht gegeben ist, dann erscheint ein doppelslash und bevor ich's vergesse...die URL wird wie folgt angezeigt: unterseit.html/wert1/wert2/wert3...Oh Maaaaaaaan.....:-(

EDIT:
Das hier ist bei mir "$pfad":
PHP:
E D I T : 16.12.11 
Sorry, aber irgendwie komm ich mir a bissl verarscht vor...Deswegen nehme ich meinen Code hier wieder raus...Is mir eh nicht ganz Geheuer...  [/CODE]
Das .html ist hier an falscher Stelle
 
Zuletzt bearbeitet:

DarkFather

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Versuchs mit http://de2.php.net/manual/de/function.pathinfo.php wenn du PHP_SELF weiter benutzen möchtest, etwa so:

$path_parts = pathinfo($_SERVER['PHP_SELF']);
$path = $path_parts['dirname']."/".$path_parts['basename']."/";

dann noch
$link_string_blaettern .= ".html\" title=\"Vor\"><font class=\"no_bg\"> &raquo;&raquo;</font></a> \n"; (.html hinten an den Link).

MfG
Dark
 

Ben78

Nicht mehr ganz neu hier

AW: URL-Parameter Dynamish mit Slash

Ich hab das jetzt mal so probiert. Aber es ist mir immer wieder misslungen. Ich hau da Syntaxfehler rein die ich selber nicht ausfindig machen kann, weil ich wahrscheinlich zu blöd dafür bin...

Wäre es nicht aber besser, wenn ich Parse...ich hab ehrlich gesagt keine große Ahnung wie das funzen soll. Aber so kann ich doch dann dynamische Parameter erzeugen oder???

Würde ich mit dem Parsen das selbe Ergebnis erzielen wie INFOPATH???

Wenn ja, dann wäre mir das so lieber, weil mir INFOPATH mehr einleuchtet. Also für mich logischer zum nachvollziehen ist.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben