Hi,
ich mache mir gerade Gedanken, ob ich mod_rewrite bei meiner Webseite einsetzen soll. Deshalb habe ich vorab lokal ein wenig herumgetestet und bin auf 3 Probleme gestoßen:
Ich hoffe Ihr könnt mir helfen.
Troublegum
ich mache mir gerade Gedanken, ob ich mod_rewrite bei meiner Webseite einsetzen soll. Deshalb habe ich vorab lokal ein wenig herumgetestet und bin auf 3 Probleme gestoßen:
RewriteEngine On
RewriteRule ^show_text/sid/([^/]*)(/?)$ /rewrite/show_text.php?sid=$1
Die show_text.php enthält nur
<?php
print_r($_GET);
?>
Das funktioniert allerdings nicht - show_text.php wird ohne sid=$1 aufgerufen. Verwende ich in der rewrite rule allerdings einen anderen namen wie show_text2 und lenke das auf show_text.php funktioniert es.
Ich nehme an, das liegt irgendwie daran, dass der Apache bei Eingabe von http://servername/rewrite/show_text (ohne Dateiendung .php) trotzdem die Datei show_text.php aufruft und hier die rewriterule nicht greift.
Wie kann ich das ändern ohne ständig andere Namen als die Dateinamen zu verwenden?
- Ich möchte, dass verschiedene Parameter optional sind und dass die Parameter variabel sind, sodass ich nicht jedesmal die RewriteRules abändern muss, wenn ich neue parameter einführe oder alte streiche.
Sprich: show_text/sid/Wert_fuer_sid/id/Wert_fuer_id/ und show_text/sid/Wert_fuer_sid/id/Wert_fuer_id/foo/bar sollen zu show_text.php?sid=Wert_fuer_sid&id=Wert_fuer_id bzw. show_text.php?sid=Wert_fuer_sid&id=Wert_fuer_id&foo=bar werden und zwar mit der selben RewriteRule.
- Wenn bestimmte Variablen keinen Wert haben (z.b. show_text.php?sid=&id=2424), wie übergebe ich das am besten in der URL?
show_text/sid//id/2424 halte ich für bedenklich. und ganz weglassen will ich den parameter ja auch nicht - es gibt ja unterschiede zwischen nicht übergeben und kein wert.
Ich hoffe Ihr könnt mir helfen.
Troublegum