Seite 1 von 1
301 - verzeichnis zu .html ohne "anhang"
Verfasst: 10.09.2008, 17:56
von valled
hallo
hab folgendes problem mit modrewrite
mein ziel:
/blog/*alles* soll auf blog.html weitergeleitet. hab ich mit:
RedirectMatch ^/blog /blog.html [L,R=301]
gelöst.
nun aber mein problem:
gibt jemand z.b.
www.domain.de/blog/?haha=123 ein so wird daraus: domain.de/blog.html?haha=123
wie krieg ich es hin das immer !!! nur auf blog.html ohne den "crap hinter der url " weitergeleitet wird?
vielen dank
grüße
Re: 301 - verzeichnis zu .html ohne "anhang"
Verfasst: 10.09.2008, 20:39
von Mork vom Ork
valled hat geschrieben:/blog/*alles* soll auf blog.html weitergeleitet. hab ich mit:
RedirectMatch ^/blog /blog.html [L,R=301]
gelöst.
Mal abgesehen davon, dass du da einen Schrägstrich hinter ^/blog vergessen haben musst (ansonsten wird's eine Endlosschleife), hat [L,R=301] nichts mit RedirectMatch zu tun, das sind Optionen für RewriteRule. Es wundert mich, dass der Apache das nicht nur schlucken, sondern dass es auch noch zum gewünschten Ergebnis führen soll.
RedirectMatch permanent ^/blog/ /blog.html?
oder, in /.htaccess:
RewriteEngine on
RewriteBase /
RewriteRule ^blog/ /blog.html? [L,R=301]
Die URL-Parameter werden in beiden Fällen entfernt, RewriteRule hat hier gegenüber RedirectMatch aber den Vorteil, dass auch das Fragezeichen selbst verschwindet.
Verfasst: 10.09.2008, 20:58
von valled
hi,
danke für deine antwort.
also:
RedirectMatch ^/blog /blog.html [L,R=301] hat so 1a gefunzt
RedirectMatch permanent ^/blog/ /blog.html? -> da hängt jetzt imma ein ? dran und /blog/?123=123 klappt nachwievor: blog.html?123=123
das hier: klappt gar nicht oder muss das ins blog verzeichniss?
RewriteEngine on
RewriteBase /
RewriteRule ^blog/ /blog.html? [L,R=301]
danke
grüße
valentin
edit:
ich machs mit php:
function haskeys($array) {
$keys = array_keys($array);
$keys_count = count($keys);
$foo = $array['rw'] == 1 ? 1 : 0;
$ret = $keys_count > $foo ? TRUE : FALSE;
return $ret;
}
if(haskeys($_GET)){ echo"url enthält ?... exit,die();, redirect.. what ever\n";}
danke für deine hilfe
Verfasst: 10.09.2008, 21:33
von Mork vom Ork
Mmh, verkehrte Welt. Ich habe die beiden Vorschläge ausprobiert, hier funktionieren sie. Deine erste Fassung haut er mir hingegen um die Ohren.
Darauf, dass bei RedirectMatch das Fragezeichen noch dranhängt, hatte ich ja hingewiesen und deshalb die RewriteRule-Version empfohlen. Sie gehört in die oberste .htaccess.
Verfasst: 10.09.2008, 21:37
von valled
ich machs mit php:
function haskeys($array) {
$keys = array_keys($array);
$keys_count = count($keys);
$foo = $array['rw'] == 1 ? 1 : 0;
$ret = $keys_count > $foo ? TRUE : FALSE;
return $ret;
}
if(haskeys($_GET)){ echo"url enthält ?... exit,die();, redirect.. what ever\n";}
danke für deine hilfe
ps: code stammt von nem programmierfreund
