Archiv verlassen und diese Seite im Standarddesign anzeigen : Klammer und Slash aus URL entfernen
Hi,
ich habe ein Problem beim mod_rewrite
Wenn eine meiner URL's so aussieht:
http://www.meine-domain.de/guide-Montageplaner+(m/w).html
sieht meine Regel so aus:
RewriteRule ^guide.html$ index.php?page=guide [L]
RewriteRule ^guide\-argument\-([^-]+).html$ index.php?page=guide&op=arg&title=$1 [L]
RewriteRule ^guide\-([^-]+).html$ index.php?page=guide&op=readGuide&title=$1 [L]
RewriteRule ^guide\-([^-]+)\-([0-9]+).html$ index.php?page=guide&op=readGuide&title=$1&pg=$2 [L]
Die Regel funktioniert nur, wenn keine Klammer oder / drin ist.
Wie kann ich es schaffen, dass er nun auch die Klammer und den Slash umschreibt oder ignoriert?
Gruß Jörn
Die URL richtig schreiben. Ein Slash darf in einem Dateinamen nicht vorkommen.
Das kann nicht sein!
Schau dir mal die URL an, bei der geht es ja auch
Restaurants und Gastronomie - Beratung für Businesspläne,Gesundheitsausweis,Speisekarten und Existenzgründung (http://www.restaurant-berater.de/index.php?page=guide&op=readGuide&title=Bürokaufmann/-frau)
Jörn
AmicaNoctis 23-08-2009, 15:02 Dort ist es ein Parameter, da es hinter dem ? steht.
Okay, ich verstehe.
Kann ich den Titel, der mir übergeben wird, so manipulieren, dass er symatisch korrekt als URL dargestellt wird und wenn je, wie?
AmicaNoctis 23-08-2009, 15:13 Du kannst den Titel durch Suchen und Ersetzen so umformen, dass es als URL syntaktisch korrekt ist.
URL Encoding ? Wikipedia (http://de.wikipedia.org/wiki/URL_Encoding)
/ entspricht %2F
Oder mit PHP:
http://de.php.net/manual/en/function.rawurlencode.php
AmicaNoctis 23-08-2009, 15:23 <ironie>bei "Montageplaner%20%29m%2fw%29" weiß gleich jeder, was gemeint ist</ironie> ;)
Ich finde die Ersetzungsmethode besser: "Montageplaner-(m-w)"
Wie könnte ich es denn am besten umsetzen?
Hier die Stelle im Quelltext:
foreach ($result as $row) {
$id = intval($row['id']);
$nome = outCode($row['nome']);
echo "<div id='block_linkstyle'><a href='index.php?page=guide&op=readGuide&title=".rawurlencode($nome)."' title='$nome'>$nome</a></div>\n";
}
AmicaNoctis 23-08-2009, 15:37 Du arbeitest doch mit mod_rewrite, oder? Dann darfst du aber keine Links veröffentlichen, die über Parameter arbeiten, das soll doch mod_rewrite erledigen. Du erzeugst nur Links wie "guide-Montageplaner-(m-w)" und das kannst du mit preg_replace machen, also alle verbotenen Zeichen durch z. B. - ersetzen.
das versteh ich nicht.
An welcher Stelle muss ich nun manipulieren, direkt im Quelltext oder doch in der .htaccess ?
AmicaNoctis 23-08-2009, 15:53 Du musst im Quelltext Links erzeugen, die deine .htaccess dann übersetzen kann. Wenn du die bereits übersetzten Links erzeugst, bringt die .htaccess ja nichts.
Zum x-ten Mal: Keine Domains verlinken, die euch nicht gehören!
Bitte entferne die Verlinkung, und gewöhne dir an, example.com/.net/.org für Beispiel zu nutzen.
|
|