Seite 1 von 1

Fragezeichen in URL entfernen

Verfasst: 12.06.2011, 17:53
von osgee
Hallo liebe Community,

Ich bin langsam am Verzweifeln, da ich es nicht selbst hinbekomme und hoffe, dass ihr mir helfen könnt! Ich habe ein Forum und will in die URL der Beiträge den Beitragstitel einfügen ... das habe ich soweit hinbekommen.

Das Problem ist nur, dass manche Titel ein Fragezeichen (?) enthalten dann nicht angezeigt werden können ... ich habe mir gedacht, dass ich nun einfach die URLs, die ein Fragezeichen enthalten umleite und das Fragezeichen dann mit einem anderen Zeichen ersetze bzw. entferne .. aber anscheinend ist da schwieriger als gedacht ..

Aktuell sind die URLs so aufgebaut:

www.domain.com/beitragID_titel.html

Wäre der Titel nun "hallo?" und die id 20 würde das so aussehen:

www.domain.com/beitrag20_hallo?.html

Und genau da stört dieses Fragezeichen und macht alles kaputt ... wie ist es möglich, dass ich alle urls dieses formates so umwandle, dass das fragezeichen entfernt wird (oder meinetwegen mit nem anderen zeichen ersetzt wird), sodass auf folgende url umgeleitet wird: www.domain.com/beitrag20_hallo.html

Bitte Bitte hilft mir! Vielen Dank schon mal im Vorraus!!

lg

Verfasst:
von

Verfasst: 12.06.2011, 18:21
von Airport1
Hilfe durch Selbsthilfe: Google mal nach apache query_string
da findest auch Beispiele .)

Verfasst: 12.06.2011, 18:22
von osgee
Hi,

Ja, das mit query string hatte ich schon gesehen und versucht, aber irgendwie hats nicht geklappt? :(

Verfasst:
von

Verfasst: 12.06.2011, 18:47
von osgee
Ich hatte es bisher übrigens so versucht, jedoch ohne Erfolg. Hatte keinerlei auswirkungen ...

RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^beitrag\.html$ https://www.hiphop-jam.net/beitrag$1.html? [R=301,L]

Re: Fragezeichen in URL entfernen

Verfasst: 12.06.2011, 19:39
von 800XE
osgee hat geschrieben:aber anscheinend ist da schwieriger als gedacht ..
irgendwo werden die Links ausgegeben


$title="Hallo?";
$id=23;
echo ('/beitrag'.$id.'-'.$title.'.html');

= /beitrag23-Hallo?.html




$title=str_replace('?','-',$title);

= /beitrag23-Hallo-.html




Was ist daran schwer?

Verfasst: 12.06.2011, 19:50
von osgee
Hallo,

Das Problem ist, dass es in diesem Fall (der Grund sei mal irrelevant) nicht möglich ist, das über eine php funktion zu machen ... brauche das über .htaccess - gibt es da keine möglichkeit dafür?

lg

Verfasst: 12.06.2011, 20:29
von 800XE
osgee hat geschrieben:Das Problem ist, dass es in diesem Fall (der Grund sei mal irrelevant) nicht möglich ist, das über eine php funktion zu machen ... brauche das über .htaccess - gibt es da keine möglichkeit dafür?
ja klar

Wenn Die Ausgabe nicht geäbdert werden kann
kann das nur daran liegen das es keien Ausgabe gibt
Wenn es aber keine Ausgabe gibt, gibt es kein Problem mit einer falschen Ausgabe
Da es ein problem mit einer falschen Ausgabe gibt, gibt es eine Ausgabe die geändert werden kann

oder
deine Aussage ist wie
"Atomkraftwerke (ausser die Russischen) können nicht Explodieren"






Wenn Ihr die CodeZeile nicht finden könnt oder suchen wollt
dann vielleicht einen Umweg über 404
osgee hat geschrieben:Das Problem ist nur, dass manche Titel ein Fragezeichen (?) enthalten dann nicht angezeigt werden können ...
Es gibt dann einen 404

ErrorDocument 404 /E404.php


E404.php

Code: Alles auswählen

/***********************************************************************
 *   Weiterleitung via PHP
 **********************************************************************/
function make301($goto)
{
       header("HTTP/1.1 301 Moved Permanently"); 
  if ( substr($goto,0,4)=='http' )
       header('Location: '       .$goto);
  else header('Location: http://'.$goto);
  exit();
}


if ( strpos ( $_SERVER['REQUEST_URI'] , '?' ) )
{
  $goto  = $_SERVER['HTTP_HOST'];
  $goto .= str_replace( '?' , '_' , $_SERVER['REQUEST_URI'] );

  make301( $goto );
}

Verfasst: 12.06.2011, 21:04
von osgee
Sorry, ich hab mich vorher etwas missverständlich ausgedrückt. die ausgabe KÖNNTE man ändern, das wäre jedoch sehr sehr umständlich in diesem system da zig dateien bearbeitet werden müssten. ich meine wenn es anders nicht möglich ist, bleibt mir nichts anderes übrig aber gibt es wirklich keine möglichkeit das global via htaccess zu ändern?

lg

Verfasst: 12.06.2011, 21:31
von 800XE
osgee hat geschrieben:gibt es wirklich keine möglichkeit das global (via htaccess) zu ändern?
Du hast nicht gelesen was ich geschrieben



//EDIT
wie lautet die ANtwort auf die Frage wo ich das Fragezeichen vergessen habe?

Verfasst: 12.06.2011, 23:07
von osgee
ah, sorry, hatte das vorher überlesen (vom handy gesurft) .. danke für deine hilfe! das ist sehr hilfreich gewesen :)