Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

URLparameter mit Slash.html

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 12.12.2011, 06:49

Hallo Leudldileutz,

ich versuche seit ca. zwei Tagen und Nächten aus folgender URL:

Code: Alles auswählen

http://domain.de/unterseite.html?param1=wert1&param2=wert2&param3=wert3
...folgende zu generieren:

Code: Alles auswählen

http://domain.de/unterseite.html/wert1/wert2/wert3.html
Das ganze probiere ich seit ca. zwei Tagen mittels .htaccess via RewriteRule wie z. B. folgt:

Code: Alles auswählen

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

Code: Alles auswählen

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

Bei diesen Beispielen handelt es sich um mein ich glaube mind. 20er Versuch...!?!:o :oops: 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... :bad-words: :roll: :cry:

PLS SBDY HLP...PLS
:o :idea: :o

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Malte Landwehr
PostRank 10
PostRank 10
Beiträge: 3474
Registriert: 22.05.2005, 10:45

Beitrag von Malte Landwehr » 12.12.2011, 07:49

Hier mal ein paar Beispiele, wie phpBB3 das macht:

Code: Alles auswählen

RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*)-s([0-9]*).html viewtopic.php?f=$2&t=$4&start=$5&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*).html viewtopic.php?f=$2&t=$4&%{QUERY_STRING} [L]
RewriteRule global/(.*)-t([0-9]*).html ./viewtopic.php?f=1&t=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/index-s([0-9]*).html viewforum.php?f=$2&start=$3&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/ viewforum.php?f=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*) viewforum.php?f=$2&%{QUERY_STRING} [L]
Davon solltest du deines eigentlich abteilen können.


ben78 hat geschrieben:

Code: Alles auswählen

RewriteRule ^([a-z]+)\.html$ /unterseite.html?param1=$1 param2=$2 param3=$3 [QSA]
Hier fehlen ja im ersten Teil komplett die Parameter. Das kann so nichts werden.


ben78 hat geschrieben:

Code: Alles auswählen

http://domain.de/unterseite.html/wert1/wert2/wert3.html
Ich muss mal ganz blöd fragen: Warum? Ein ".html" in einem (virtuellen) Ordernamen würde ich nie machen.



edit:
Ganz grob sollte das irgendwie so aussehen. Ich bin aber gerade noch am Tee trinken und hatte keine Lust das jetzt zu testen.

Code: Alles auswählen

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


edit 2:
Zur Klarstellung: Wenn jemand https://domain.de/unterseite.html/wert1 ... wert3.html aufruft, dann soll er den Inhalt von https://domain.de/unterseite.html?param ... ram3=wert3 sehen, ohne dass es zu einer Weiterleitung kommt? Und /unterseite.html/ ist statisch?
Die 45 wichtigsten SEO-Tools und wie ich sie nutze.

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 12.12.2011, 18:02

Ganz grob sollte das irgendwie so aussehen. Ich bin aber gerade noch am Tee trinken und hatte keine Lust das jetzt zu testen.

RewriteRule /unterseite.html/([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/([a-zA-Z0-9]+).html /unterseite.html?param1=$1&param2=$2&param3=$3
...führt zu keinem Ergebnis. Alles in der Adresszeile (url) bleibt unverändert. So geht's schon seit knapp drei Tagen bei mir ab...i pack's langsam nimmer... :cry:

edit 2:
Zur Klarstellung: Wenn jemand https://domain.de/unterseite.html/wert1 ... wert3.html aufruft, dann soll er den Inhalt von https://domain.de/unterseite.html?param ... ram3=wert3 sehen, ohne dass es zu einer Weiterleitung kommt? Und /unterseite.html/ ist statisch?
Ja, er soll unter dem Aufruf folgender url:

Code: Alles auswählen

http://domain.de/unterseite.html/wert1/wert2/wert3.html
den Inhalt folgender url:

Code: Alles auswählen

http://domain.de/unterseite.html?param1=wert1&param2=wert2&param3=wert3 
angezeigt bekommen. Und dabei soll gleichzeitig DC vermieden werden. Es handelt sich um eine Blätter- und Sortierfunktion in meinem Script.
...Und /unterseite.html/ ist statisch?
nein, die Unterseite ist dynamisch. Blätterfunktion, Sortierfunktion,Ausgabetabelle etc.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 12.12.2011, 20:55

...und das hier Funzt auch nicht.

Code: Alles auswählen

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

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.


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

:o :cry: :bad-words: :robot: :( :x :-? :bad-words: :bad-words: :bad-words:

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 14.12.2011, 08:17

ben78 hat geschrieben:Alles in der Adresszeile (url) bleibt unverändert.
Dann ist es richtig, weil es Sinn der Sache ist, dass die in der Adresszeile eingegebene URL unverändert bleibt.
ben78 hat geschrieben: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.
Ja, ist auch richtig. Du musst die neue Linkstruktur auch im Script umsetzen, also die Blätter- und Sortierfunktion anpassen. Das Script ruft nicht die umgeschriebenen URLs von alleine auf, nur weil es in der htaccess so steht, sondern Du musst das Script an die veränderte Struktur anpassen.

Code: Alles auswählen

$Seite = "unterseite";


// Beispiel Blätterfunktion vorher:

echo  "\t<a href="".htmlspecialchars&#40;$Seite.".html?param1=".$wert1."&param2=".$wert2."&param3=".$wert3&#41;."">nächste Seite</a>\n";


// Beispiel Blätterfunktion nachher&#58;

echo  "\t<a href="".htmlspecialchars&#40;$Seite.".html/".$wert1."/".$wert2."/".$wert3&#41;.".html">nächste Seite</a>\n";

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 15.12.2011, 20:53

@_Leutze...Erstmal THX 4 INFOS!!! haben mir weiter geholfen

So Leutz...ich bin jetzt soweit wie folgt angekommen und weiss leider nicht mehr weiter... :roll:

Nochmal ganz ausführlich zum nachvollziehen...


...ich will meine LInkstruktur umbauen. Dazu habe ich folgenden Ansatz aufgearbeitet:

Code: Alles auswählen

	//VARS
	$path_parts = pathinfo&#40;$_SERVER&#91;'PHP_SELF'&#93;&#41;; 
	$pfadangabe = $path_parts&#91;'dirname'&#93;."/".$path_parts&#91;'filename'&#93;;

	//LINK
	<a href=\"".htmlspecialchars&#40;$pfadangabe."./".$VAR1."/".$VAR2."/".$VAR3&#41;.";
Hierzu meine .htaccess

Code: Alles auswählen

	RewriteRule ^unterseite/&#40;.*&#41;/&#40;.*&#41;/&#40;.*&#41;.html$ /unterseite.html?param1=$1t&param2=$2&param3=$3 &#91;QSA&#93;
Dabei entstehen folgende 2 Probleme:

1. Problem
Die URL wird wie folgt ohne DOMAIN.DE angezeigt

Code: Alles auswählen

	http&#58;//unterseite/$var1//$var3.html
Ich schließe daraus, dass irgendwo hier der Fehler liegen muss:

Code: Alles auswählen

	$path_parts = pathinfo&#40;$_SERVER&#91;'PHP_SELF'&#93;&#41;; 
	$pfadangabe = $path_parts&#91;'dirname'&#93;."/".$path_parts&#91;'filename'&#93;;//=>HIER MUSS DER FEHLER LIEGEN
2. Problem
Wenn eine $var nicht gegeben ist, dann entstehen in der URL doppelslashes wie z. B.:

Code: Alles auswählen

unterseite/$var1//$var3.html&#41;
Dieses Problem habe ich mittels If-Anweisung lösen können. Also so in etwa:

Code: Alles auswählen

$slashes_1 ="/";
$slashes_2 = "/";

if &#40; $var1=='' &#41; $slashes_1='';
if &#40; $var2=='' &#41; $slashes_2='';
So verschwinden jetzt wenigstens die Doppelslashes...
Aber meine Frage an der Stelle lautet, ob das rein technisch überhaupt der richtige Ansatz ist???

FAZIT:
Ich bin mir Sicher, dass der Schweinehund irgendwo in der .htaccess und in der Variable "$pfadangabe" zu finden ist...

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 17.12.2011, 01:43

Das .html aus der Mitte habe ich mal rausgeworfen. Kannst es ja wieder einfügen, falls Du es benötigst.

htaccss:

Code: Alles auswählen

RewriteEngine on 

RewriteRule ^test/probe-&#40;.+&#41;-&#40;.+&#41;-&#40;.+&#41;.html$ /test/probe.php?param1=$1&param2=$2&param3=$3 &#91;L&#93; 
RewriteRule ^test/probe/&#40;.+&#41;/&#40;.+&#41;/&#40;.+&#41;.html$ /test/probe.php?param1=$1&param2=$2&param3=$3 &#91;L&#93;  
Localhost gegen Deine Domain austauschen oder auch erst einmal unter Localhost testen.

PHP:

Code: Alles auswählen

<?php

/*

 Verzeichnis test und Datei probe.php 
 http&#58;//localhost/test/probe.php
 
*/

$VAR1 = "a";
$VAR2 = "b";
$VAR3 = "g";

if &#40;isset&#40;$_GET&#91;"param1"&#93;&#41; and !empty&#40;$_GET&#91;"param1"&#93;&#41;&#41; &#123;$VAR1 = $_GET&#91;"param1"&#93;."lpha";&#125; else &#123;echo "F1";&#125;
if &#40;isset&#40;$_GET&#91;"param2"&#93;&#41; and !empty&#40;$_GET&#91;"param2"&#93;&#41;&#41; &#123;$VAR2 = $_GET&#91;"param2"&#93;."eta";&#125;  else &#123;echo "F2";&#125;
if &#40;isset&#40;$_GET&#91;"param3"&#93;&#41; and !empty&#40;$_GET&#91;"param3"&#93;&#41;&#41; &#123;$VAR3 = $_GET&#91;"param3"&#93;."amma";&#125; else &#123;echo "F3";&#125;


// VARS

$path_parts = pathinfo&#40;$_SERVER&#91;"PHP_SELF"&#93;&#41;;
$pfadangabe = $path_parts&#91;"dirname"&#93;."/".$path_parts&#91;"filename"&#93;;

// LINK 1

echo "<br><a href=\"".htmlspecialchars&#40;$pfadangabe."-".$VAR1."-".$VAR2."-".$VAR3&#41;.".html\">".
      $pfadangabe."-".$VAR1."-".$VAR2."-".$VAR3.".html</a><br>\n"; 
	  
// LINK 2

echo " <a href=\"".htmlspecialchars&#40;$pfadangabe."/".$VAR1."/".$VAR2."/".$VAR3&#41;.".html\">".
      $pfadangabe."/".$VAR1."/".$VAR2."/".$VAR3.".html</a><br>\n"; 


/*
 
 Ausgabe vor Betätigung eines Links&#58; 
 
 F1F2F3
 /test/probe-a-b-g.html
 /test/probe/a/b/g.html
 
 Ausgabe nach Betätigung eines Links&#58;  
 
 /test/probe-alpha-beta-gamma.html
 /test/probe/alpha/beta/gamma.html
 
*/

?>

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 17.12.2011, 09:40

Liegt das Script bereits im Stammverzeichnis (Root), so stiftest Du mit der Suche nach einem Dirnamen nur Verwirrung, da ja kein weiterer Verzeichnispfad existiert:

Code: Alles auswählen

/*

 Verzeichnis Root und Datei probe.php 
 http&#58;//localhost/probe.php
 
*/
In diesem Fall müsstest Du den Teil

Code: Alles auswählen

// VARS

#$path_parts = pathinfo&#40;$_SERVER&#91;"PHP_SELF"&#93;&#41;;
#$pfadangabe = $path_parts&#91;"dirname"&#93;."/".$path_parts&#91;"filename"&#93;;
so abändern:

Code: Alles auswählen

// VARS

$path_parts = pathinfo&#40;$_SERVER&#91;"PHP_SELF"&#93;&#41;;
$pfadangabe = $path_parts&#91;"filename"&#93;;
Und die htaccess dann so:

Code: Alles auswählen

RewriteEngine on 

RewriteRule ^probe-&#40;.+&#41;-&#40;.+&#41;-&#40;.+&#41;.html$ /probe.php?param1=$1&param2=$2&param3=$3 &#91;L&#93; 
RewriteRule ^probe/&#40;.+&#41;/&#40;.+&#41;/&#40;.+&#41;.html$ /probe.php?param1=$1&param2=$2&param3=$3 &#91;L&#93;
Vergiss dieses [QSA]. Das ist nur dann erforderlich, wenn Du an einem übergebenen QueryString noch weitere Parameter anhängen möchtest oder so. Ich habe es jedenfalls bisher noch nicht benötigt.

Falls die Werte der Parameter nur aus Ziffern und Buchstaben bestehen, wäre es jedoch besser, die von Malte Landwehr vorgeschlagene Schreibweise zu benutzen. Da der Punkt für beliebige Zeichen und somit auch für - und / steht, sind bei der Verwendung von (.+) mehr Rechendurchgänge für den Abgleich des Musters erforderlich, als wenn die geklammerten Bestandteile des Musters auf Ziffern und Buchstaben eingeschränkt werden. Und dann finde ich es leichter einen Bindestrich als Trenner zu verwenden, da der weniger Grund für fehlerhafte Strukturen liefert. Doch das kannst Du Dir selbst noch ausprobieren.

Code: Alles auswählen

RewriteEngine on 

RewriteRule ^probe-&#40;&#91;a-zA-Z0-9&#93;+&#41;-&#40;&#91;a-zA-Z0-9&#93;+&#41;-&#40;&#91;a-zA-Z0-9&#93;+&#41;.html$ /probe.php?param1=$1&param2=$2&param3=$3 &#91;L&#93; 
RewriteRule ^probe/&#40;&#91;a-zA-Z0-9&#93;+&#41;/&#40;&#91;a-zA-Z0-9&#93;+&#41;/&#40;&#91;a-zA-Z0-9&#93;+&#41;.html$ /probe.php?param1=$1&param2=$2&param3=$3 &#91;L&#93; 

ben78
PostRank 4
PostRank 4
Beiträge: 153
Registriert: 30.03.2007, 17:15

Beitrag von ben78 » 23.12.2011, 15:02

@LEUTZ
...auch wenn ich mein Problem bereits lösen konnte will ich hier, also in diesem Forum eines loswerden:

Ihr seit der absolute Wahnsinn...und dieses Forum ist ein VOLL-FETT-SUPER-ARSCH-GEILES Forum wie ich bis Dato seit Beginn meiner WebMaster-Karriere noch kein besseres im gesamten Netz ausfindig machen konnte und seit ich Euch kenne auch nicht mehr wollte...Und damit ist auch das WP-Forum gemeint...!!!

Ich habe bei Euch Dank Eurer Hilfe sehr viel von Euch lernen können.

Und eines verspreche ich diesem Forum...wenn ich mit meinem Schinken fertig bin...komme ich...und will dann auch helfen....!

Ich wünsche Euch allen ein schönes und harmonisches Weihnachtsfest sowie ein schönes beisammen Sein mit Eurer Familie...

VERY BIG THX @ALL 4 HLP UR DA GREATEST....!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag