Willkommen im neuen Forum von concrete5.de.
Die Anmeldung ist ab dem 15.10.2020 nur noch mit E-Mail Adresse und Passwort möglich. Eine Anmeldung mit Benutzername ist nicht mehr möglich.
Diese Nachricht löschen.
Anhang entfernen?
Zurück zur Themenliste
R
rritz 04.01.2011 20:40
pretty url problem Gelöst
Ich versuche pretty url zu aktivieren.
Mein Host sagt, pretty url bzw mod_rewrite wird unterstützt und mich an diese Seite verwiesen:
http://www.roscripts.com/Pretty_URLs_-_a_guide_to_URL_rewriting-168.html
Ich habe zunächst einfach die Anleitung in c5 befolgt, also Häkchen bei enable pretty url machen, .htaccess in der root anlegen, code reinkopieren
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
und fertig.
Meine Startseite /home funktioniert, allerdings die Unterseiten /music /video usw. liefern nur leere Seite mit "No input file specified"
Also hab ich versucht den Code zu verwenden, der in dem Artikel oben steht, wo mich mein Host hinverwiesen hat also
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule .* index.php [L]
Jetzt liefern alle URLs immer nur die Startseite als sichtbares Ergebnis, also url ändert sich, Seite bleibt gleich.
Ich verstehe nichts von php, aber ich glaube mal, das mod_rewrite an sich funktioniert, nur wird dann die Seite nicht gefunden.
Kann mir jemand sagen, was ich tun muss oder was ich falsch mache?
Ich habe alle Posts im englischen Forum durchsucht, aber auch keine Lösung gefunden.
Mein Host sagt, pretty url bzw mod_rewrite wird unterstützt und mich an diese Seite verwiesen:
http://www.roscripts.com/Pretty_URLs_-_a_guide_to_URL_rewriting-168.html
Ich habe zunächst einfach die Anleitung in c5 befolgt, also Häkchen bei enable pretty url machen, .htaccess in der root anlegen, code reinkopieren
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
und fertig.
Meine Startseite /home funktioniert, allerdings die Unterseiten /music /video usw. liefern nur leere Seite mit "No input file specified"
Also hab ich versucht den Code zu verwenden, der in dem Artikel oben steht, wo mich mein Host hinverwiesen hat also
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule .* index.php [L]
Jetzt liefern alle URLs immer nur die Startseite als sichtbares Ergebnis, also url ändert sich, Seite bleibt gleich.
Ich verstehe nichts von php, aber ich glaube mal, das mod_rewrite an sich funktioniert, nur wird dann die Seite nicht gefunden.
Kann mir jemand sagen, was ich tun muss oder was ich falsch mache?
Ich habe alle Posts im englischen Forum durchsucht, aber auch keine Lösung gefunden.
R
Remo 05.01.2011 20:51
mod_rewrite kann teilweise etwas lästig sein, aber wenn du eine Weile damit gearbeitet hast, wird's plötzlich relativ einfach.
Was ich nicht ganz verstehe, die Startseite ist bei concrete5 nicht unter /home zu erreichen sondern unter / direkt.
Kann es sein, dass du concrete5 in einem Unterverzeichnis installiert hast?
Ich seh nicht wie die zweite Regel überhaupt etwas sinnvolles tun soll. Da wird immer index.php geöffnet, ohne einen Parameter mitzugeben. Eine kleine mod_rewrite/regex Hilfe:Die Klammern definieren eine Gruppe deren Wert du als Parameter verwenden kannst. Aus .* wird also (.*) damit's als Parameter funktioniert - das ist zwingend.Der Punkt steht für ein beliebiges ZeichenDer Stern steht für eine beliebige Anzahl ZeichenDie RewriteRule holt sich also simpel und einfach alle Zeichen (der URL) und übergibt sie dem index.php indem der Wert nach einem Slash angehängt wird.
Es gibt viele Möglichkeiten wieso sowas nicht funktioniert, ohne deine Serverkonfiguration zu kennen und ohne Zugriff wird das etwas theoretisch, ein paar Varianten:Der Pfad passt nicht, entweder ist's in einem Unterverzeichnis und du hast den Pfad in RewriteBase nicht angegebenindex.php in der Rule wird nicht gefunden. Ev. mal mit /index.php versuchen, oder ./index.php oder gleich mit einem absoluten PfadDer Server erlaubt es nicht, dass Parameter via / übergeben werden, ist aber eher selten der Fall. wenn http://dein-server.com/index.php/about funktioniert, trifft dieser Punkt nicht zu Grundsätzlich wäre es sehr hilfreich einen Blick ins Log File zu werfen. Apache schreibt dort meist rein wieso die Regel nicht funktioniert.. Schau doch mal in deiner Console was dort steht.
Was ich nicht ganz verstehe, die Startseite ist bei concrete5 nicht unter /home zu erreichen sondern unter / direkt.
Kann es sein, dass du concrete5 in einem Unterverzeichnis installiert hast?
Ich seh nicht wie die zweite Regel überhaupt etwas sinnvolles tun soll. Da wird immer index.php geöffnet, ohne einen Parameter mitzugeben. Eine kleine mod_rewrite/regex Hilfe:Die Klammern definieren eine Gruppe deren Wert du als Parameter verwenden kannst. Aus .* wird also (.*) damit's als Parameter funktioniert - das ist zwingend.Der Punkt steht für ein beliebiges ZeichenDer Stern steht für eine beliebige Anzahl ZeichenDie RewriteRule holt sich also simpel und einfach alle Zeichen (der URL) und übergibt sie dem index.php indem der Wert nach einem Slash angehängt wird.
Es gibt viele Möglichkeiten wieso sowas nicht funktioniert, ohne deine Serverkonfiguration zu kennen und ohne Zugriff wird das etwas theoretisch, ein paar Varianten:Der Pfad passt nicht, entweder ist's in einem Unterverzeichnis und du hast den Pfad in RewriteBase nicht angegebenindex.php in der Rule wird nicht gefunden. Ev. mal mit /index.php versuchen, oder ./index.php oder gleich mit einem absoluten PfadDer Server erlaubt es nicht, dass Parameter via / übergeben werden, ist aber eher selten der Fall. wenn http://dein-server.com/index.php/about funktioniert, trifft dieser Punkt nicht zu Grundsätzlich wäre es sehr hilfreich einen Blick ins Log File zu werfen. Apache schreibt dort meist rein wieso die Regel nicht funktioniert.. Schau doch mal in deiner Console was dort steht.
R
rritz 05.01.2011 21:30
Hi Remo!
Ja erstmal danke für die Antwort. a. Du hast recht, es ist nicht /home sondern direkt.
b. die zweite Regel liefert auch nichts sinnvolles sondern immer nur die Startseite
Ich hab es auch mit/index.php versucht, aber das hat auch nichts geändert am No input file specified.
Der Seitenaufruf mit der index.php/music usw. funktioniert.
Wo finde ich das Log file ?
Danke und lg
Ja erstmal danke für die Antwort. a. Du hast recht, es ist nicht /home sondern direkt.
b. die zweite Regel liefert auch nichts sinnvolles sondern immer nur die Startseite
Ich hab es auch mit/index.php versucht, aber das hat auch nichts geändert am No input file specified.
Der Seitenaufruf mit der index.php/music usw. funktioniert.
Wo finde ich das Log file ?
Danke und lg
Nachricht hinzufügen
Sie müssen sich anmelden , um diese Konversation zu posten.