2 Probleme mit mod_rewrite

birwac66

Well-known member
ID: 178958
L
20 April 2006
558
17
Hallo ich habe zwei probleme mit mod_rewrite
Erst mal meine htacces datei:
RewriteEngine on
RewriteRule (.*).html$ index.php?site=$1
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 500 /error.php

Das erste Problem:
ICh bekomme einen Serverfehler
Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. Der Server ist entweder überlastet oder ein Fehler in einem CGI-Skript ist aufgetreten.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 500
localhost
11/01/06 20:54:46
Apache/2.2.2 (Win32) DAV/2 mod_ssl/2.2.2 OpenSSL/0.9.8b mod_autoindex_color PHP/5.1.4

Welche Lösungen wären hier möglich?

Zweites Problem:
Was muss ich verändern, dass ich ne zweite funktion hinzufügen kann. (z.B. ?site=start&test=2test&test123=2

Wie wäre hier die Problemlösung?
 
1. Wahrscheinlich ist auf deinem Webspace mod_rewrite nicht aktiviert.
2. RewriteRule (.*)-(.*)-(.*).html$ index.php?site=$1&test=$2&test123=$3
 
1. Wahrscheinlich ist auf deinem Webspace mod_rewrite nicht aktiviert.
2. RewriteRule (.*)-(.*)-(.*).html$ index.php?site=$1&test=$2&test123=$3
ok frage 2 geklärt

zu frage 1
schau mal kurz in der php.ini

edit3
Kann ich des auch so machen, dass wenn nur die seite test.html übergeben wird auch ?site=test geöffnet wird
und wenn ich test-12-12.html mache, dass dann die seite ?site=test&1=12&2=12 angezeigt wird?


edit2
habs gefunden war ein zeichen zu viel

edit find des irgendwie ned wo ich des aktivieren kann?
in der php.ini steht davon nix
und in der httpd.conf is auch ned des drin was ich brache um dies zu aktivieren (nutze xampp)
 
Zuletzt bearbeitet:
doch in der http.conf ist ein modul namens mod_rewrite.so oder so ähnlich, da musst dur vorne das ";" entfernen und den xampp neu starten
 
doch in der http.conf ist ein modul namens mod_rewrite.so oder so ähnlich, da musst dur vorne das ";" entfernen und den xampp neu starten
des geht ja jetzt nur jetzt is meine frage
Kann ich des auch so machen, dass wenn nur die seite test.html übergeben wird auch ?site=test geöffnet wird
und wenn ich test-12-12.html mache, dass dann die seite ?site=test&1=12&2=12 angezeigt wird?
Oder das ich des noh bischen ändere also beliebig erweitern kann aber auch wenn eins ned verfügbar ist dieses ignorieren.
Beispiel:
test-test-test-test-test.html --> ?site?test&1=1&2=1&3=1&4=1
test-test --> ?site=test&1=test
test-test-test-test --> ?site?test&1=1&2=1&3=1

hoffe das ihr mir hier auch helfen könnt
 
Müssen die ganzen Parameter denn wirklich in der URL auftauchen? [QSA] als Flag wirkt IMHO oft viel schicker...
 
neues problem:
Ich habe zwei mal ne umleitung jedoch stimmt da was ned
Code:
RewriteEngine on
RewriteRule ^(.*).html$ index.php?site=$1
RewriteRule ^(.*)-(.*).html$ index.php?site=$1&2=$2

was ist hier das problem ich bekomme immer einen fehler (404 von der index.php)
Aufruf der seite so:
anzeigen-1.html jedoch wird das irgendwie ned richtig übertragen also ?site=anzeigen&2=1
 
Code:
RewriteEngine On
RewriteRule ^(.*)\.html$ index.php?site=$1 [L]
RewriteRule ^(.*)-(.*)\.html$ index.php?site=$1&2=$2 [L]

1. richtige Pkte immer Escpaen\
2. eine Endende Regel immer mit [L] abschließen
3. sicher das du das wirklich so willst???

meine würde so aussehen:
Code:
RewriteEngine On
RewriteRule ^([a-z]+)\.html$ index.php?site=$1 [NC,L]
RewriteRule ^([a-z]+)-([0-9]+)\.html$ index.php?site=$1&2=$2 [NC,L]

im ersten Teil sind die Dateienmame also immer nur buchstaben bei mir evtl kannst ja noch ein 0-9 reinschreiben für zahlen und ein _ für dateienamen ala media_data oder so, aber das mußt du wissen.

*edit Das Flag NC sagt Groß/kleinschreibung ignorieren.

Aber in den meisten Fällen ist es Performanter den QSA zu senden und den mit php zu zerpflücken in einer switch() zB.
 
Zuletzt bearbeitet: