Hallo Dominik,
Habe zu wenig Ahnung von htaccess.
http://httpd.apache.org/docs/misc/rewriteguide.html
</archiv/2002/12/32853/#m178830>
Das dürfte weiterhelfen.
Ich erstelle also im Hauptverzeichnis von http://www.testx.de
die .htaccess-Datei.Und diese muss dann folgenden Inhalt enthalten?
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/index.php.*
RewriteRule ^(.*) index.phpinhalt=$1 [L]
Fast. (Da fehlt ein Fragezeichen zwischen "php" und "inhalt") Das RewriteEngine On bewirkt, dass überhaupt das Umschreiben und URLs aktiviert wird. Das RewriteBase / ist für die .htaccess zwingend notwendig - das / heißt in diesem Fall, dass alle Zeil-URLs innerhalb dieses Verzeichnisses liegen. (Mal angenommen Du würdest im Verzeichnis http://www.example.com/test/ etwas umschreiben wollen, dann müßtest Du RewriteBase /test nehmen) Das RewriteCond stellt eine Bedingung für die nächste Umschreibe-Regel dar - in dem Fall, dass die Aufgerufene URL nicht mit index.php anfängt. Das RewriteRule ist selbst die Regel, das sagt, dass alles nach index.php?inhalt=... umgeschrieben werden soll.
Wenn jetzt jemand http://www.example.com/impressum aufruft, dann ist es so, als ob er http://www.example.com/index.php?inhalt=impressum aufruft. Wenn jetzt jemand dagegen http://www.example.com/ein/schoenes/verzeichnis aufruft, dann ist es so, als ob er http://www.example.com/index.php?inhalt=ein/schoenes/verzeichnis aufruft.
Achtung: Wenn jemand http://www.example.com/suche?was=SELFHTML aufruft, dann wird _nur_ http://www.example.com/index.php?inhalt=suche aufgerufen, alles nach dem Fragezeichen wird abgeschnitten. [1]
Muss ich auch ein Verzeichnis namens /impressum haben?
Nein. Es muss lediglich eine index.php existieren.
Viele Grüße,
Christian
[1] Um dieses Problem zu umgehen, habe ich aber eine Funktion geschrieben, (die brauche ich selbst auch) die Du in Deinen PHP-Skripten verwenden kannst.
------------------------- schnipp -------------------------
// recreate the query string that was removed by mod_rewrite
function recreate_query_string () {
// get query string
$query_string = substr ($_SERVER['REQUEST_URI'], strpos ($_SERVER['REQU
// now separate the parameters
$params = explode ('&', $query_string);
// traverse params
foreach ($params as $param) {
// get value
list ($k, $v) = explode ('=', $param);
// if key is empty, ignore it
if (empty ($k)) {
continue;
}
// add those entries to the get superglobal
$_GET[$k] = $v;
}
}
// now recreate the query string
if (strpos ($_SERVER['REQUEST_URI'], '?') !== false) {
recreate_query_string ();
}
------------------------- schnapp -------------------------
Wenn Du diesen Codeschnippsel an den Anfang Deiner index.php kopierst, funktionieren dann URLs wie http://www.example.com/suche?was=SELFHTML wieder - dann sieht es nämlich für den darauffolgenden Code so aus, als ob http://www.example.com/index.php?inhalt=suche&was=SELFHTML aufgerufen würde.
Hast Du einen Beitrag? Nur her damit!
http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[