An der .htaccess liegt es definitiv nicht. Erstell doch mal bitte eine index.php
[gelöst] mod rewrite von domain.de/category zu domain.de/index.php?cat=category
Einklappen
X
-
[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
-
Ok, also ich habe jetzt eine index.php und die .htaccess
.htaccess
Code:RewriteEngine On RewriteRule ^(.*)$ index.php?cat=$1
PHP-Code:<?php
echo "index cat: ".$_GET['cat'];
?>
Wenn ich jetzt domain.de/blub aufrufe bekomme ich folgende ausgabe:
Code:index cat: index.php
Eigentlich sollte es
Code:index cat: blub
Woran liegt das?
GrußZuletzt geändert von einermeiner; 26.10.2009, 21:51.
Kommentar
-
Dann hast du die max-redirects-Direktive (oder so ähnlich) nicht gesetzt, bzw. nicht auf 1, wie bei mir zum Beispiel.
Dann ändere die .htaccess mal auf
Code:RewriteEngine on RewriteRule !^index\.php - [C] RewriteRule ^(.*)$ index.php?cat=$1 [L]
[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
Das darfst du jetzt aber selbst mal nachlesen, wenn es dich interessiert.
Zitat von einermeiner Beitrag anzeigenwas genau ist diese max-redirects-Direktive?
Zitat von einermeiner Beitrag anzeigenCode:RewriteRule !^index\.php - [C]
[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
Hab ich natürlich schon, aber ich habs nicht verstanden.
Für mich würde die Zeile bedeuten: "Die nächste Zeile wird nur ausgeführt wenn index.php nicht existiert", aber das is total unlogisch.
Wo liegt da mein Denkfehler?
Und noch was:
Die Variante funktioniert ja einwandfrei, nur tritt jetzt ein neues Problem auf. Wenn ich das auf einer Website versuche, funktionieren keine CSS Styles, JS und Bilder mehr. Also keine über
HTML-Code:<link rel="stylesheet" href="/screen.css" type="text/css" />
Kann ich dem .htaccess mitgeben das er die ganze Weiterleitung bei .jpg, .css und .js auslässt?
Ich hab zwar das Manuel und ein paar Tutorials gelesen, aber irgendwie werde ich aus denen nicht schlau.
GrußZuletzt geändert von einermeiner; 27.10.2009, 10:14.
Kommentar
-
Zitat von einermeiner Beitrag anzeigenMit
Code:RewriteEngine on RewriteRule ^(.*)$ index.php?cat=$1
Du könntest bspw. keinen Punkt im Muster erlauben, wenn du diesen nicht brauchst; oder auch per RewriteCond physisch existierende Dateien/Verzeichnisse vom Rewriting ausschliessen.I don't believe in rebirth. Actually, I never did in my whole lives.
Kommentar
-
Natürlich nicht - denn dieses Muster trifft auch auf index.php zu, so dass du in einer Endlosschleife landest.
Also mit "RewriteEngine on" schalte ich das Modul an und ermögliche das Rewriting.
Mit "RewriteRule" erstelle ich eine neue Regel.
"^" bedeutet, am Anfang der Url
"(.*)" bedeutet kein oder mehrere Zeihen
Und mit "$" speichere ich das gesuchte in eine variable, in dem fall in $1
und dann leite ich das ganze einfach an index.php?cat=$i um
Wenn jemand domain.de/index.php aufrufen würde, müsste es mir "index cat = index.php" ausgeben.
Ich verstehe nicht wo da eine Endlosschleife entsteht.
Wenn jetzt domain.de/blub eingegeben wird müsste ich "index cat = blub" bekommen.
Mit "RewriteRule !^index\.php - [C]" funktioniert das auch, ich versteh nur nicht warum.
per RewriteCond physisch existierende Dateien/Verzeichnisse vom Rewriting ausschliessen.
Gruß
Kommentar
-
Zitat von einermeiner Beitrag anzeigenWenn jemand domain.de/index.php aufrufen würde, müsste es mir "index cat = index.php" ausgeben.
Ich verstehe nicht wo da eine Endlosschleife entsteht.
Meinst du damit, das ich dann dort alle Dateien ablegen soll, die eingebunden werden, wie z.B. CSS und JS?
Kommentar
-
Ok also das mit der Endlosschleife habe ich verstanden.
Aber was meinst du mit:
Sollst du nicht. Lies mod_rewrite - Apache HTTP Server
Gruß
Kommentar
-
Hallo nochmal,
alles, was du nicht "rewriten" willst, gibst du genau so an, wie auch die index.php ausgeschlossen wird:
Code:RewriteEngine on RewriteRule !^index\.php - [C] RewriteRule !^style\.css - [C] RewriteRule !^script\.js - [C] RewriteRule !^(.+)\.pdf$ - [C] RewriteRule !^img/ - [C] RewriteRule !^download/ - [C] RewriteRule ^(.*)$ index.php?cat=$1 [L]
Amica[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
Toll da hät ich auch drauf kommen können Danke
So funktioniert es wenn ich ein css file so eingebunden habe:
PHP-Code:echo "<link rel=\"stylesheet\" href=\"screen.css\" type=\"text/css\" />";
PHP-Code:echo "<link rel=\"stylesheet\" href=\"/screen.css\" type=\"text/css\" />";
So habe ich es schon versucht, hat aber nicht geklappt:
Code:RewriteEngine on RewriteRule !^screen\.css - [C] RewriteRule !^/screen\.css - [C] RewriteRule !^index\.php - [C] RewriteRule ^(.*)$ index.php?cat=$1 [L]
Gruß
Kommentar
-
Zitat von AmicaNoctis Beitrag anzeigenalles, was du nicht "rewriten" willst, gibst du genau so an, wie auch die index.php ausgeschlossen wird: [...]
Kommentar
-
Zitat von TobiaZ Beitrag anzeigenDann muss er ja bei jeder neu erstellten Datei seine Regel anpassen...[COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
[/COLOR]
Kommentar
-
Nene, das passt schon. Ich klammere alle .css, .js und .jpg Dateien aus.
So sieht die .htaccess Datei aus:
Code:RewriteEngine on RewriteRule !^(.*)\.css - [C] RewriteRule !^(.*)\.js - [C] RewriteRule !^(.*)\.jpg - [C] RewriteRule !^index\.php - [C] RewriteRule ^(.*)$ index.php?cat=$1 [L]
PHP-Code:echo "<link rel=\"stylesheet\" href=\"/screen.css\" type=\"text/css\" />";
Habt ihr dafür eine Lösung? Ich find einfach keine.
Gruß
Kommentar
Kommentar