Ich versuche, Seiten mit mod_rewrite auf die Seiten mit einigen Variablen umzuleiten (für die Verwendung mit PHP $_GET
).Mod Rewrite und PHP
Um ein Beispiel mit wenigen Zeilen geben:
- Wenn der Benutzer
/c/stg
geht es Umleitungen anitem_show.php?id=$1&f=1
(wof
Seitenzahl ist). - Wenn der Benutzer
/c/stg/2
eingibt, wird auf die zweite Seite mitshow.php?id=$1&f=$2
umgeleitet.
Ich denke, es gibt keine Fehler oder Missbrauch von diesen in meiner Datei, aber hier ist es, was ich will:
ich Benutzer will /
string
direkt item_show.php?id=$1&f=1
mit $1
zu gehen, geben unsere String natürlich ...
Aber wenn ich meine Datei ändere, indem ich den /c/
Teil von RewriteRule
lösche, fängt es an, Fehler in allen anderen Verzeichnissen zu geben und liest keine Akten (my.css
) obwohl ich bereits eine RewriteCond %{REQUEST_FILENAME} !-f
... definiert habe ...
Haben Sie Vorschläge? Oder wie kann ich dieses System mit jeder Methode möglich machen?
Options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#user
RewriteRule ^u/([^/]+)/?$ profile.php?username=$1 [L,NC]
#marked
RewriteRule ^marked/([^/]+)/?$ item_marked.php?id=$1 [L,NC]
#content
RewriteRule ^c/([^/]+)/?$ item_show.php?id=$1&f=1 [L,NC]
RewriteRule ^c/([^/]+)/([^/]+)/?$ item_show.php?id=$1&f=$2 [L,NC]
Erster Vorschlag: poste den Inhalt der Datei mit diesen Regeln in ihm. Und ist es die Hauptserverkonfiguration oder eine .htaccess-Datei? –
Aktuelle .htaccess-Datei ist hier:! Optionen FollowSymLinks RewriteEngine On RewriteCond% {REQUEST_FILENAME} -f RewriteCond% {REQUEST_FILENAME} -d #user RewriteRule^u/([^ /] +) /? $ profile.php? username = $ 1 [L, NC] #marked RewriteRule^markiert/([^ /] +) /? $ item_marked.php? id = $ 1 [L, NC] #content RewriteRule^c/([^ /] +) /? $ Item_show.php?id = $ 1 & f = 1 [L, NC] RewriteRule^c/([^ /] +)/([^ /] +)/$ $ item_show.php? id = $ 1 & f = $ 2 [L, NC] – jnbn
Entfernen der c/bedeutet alle URLs entsprechen Ihrem Muster ... das ist, was Sie meinten, rechts: > RewriteRule^([^ /] +) /? $ –