burnersk Geschrieben 8. August 2007 Geschrieben 8. August 2007 Hallo. Ich habe ein kleines Problem mit mod_rewrite ... Meine .htaccess # Verzeichnis DirectoryIndex index.php index.html index.htm Options FollowSymLinks Allow from all # PHP #nothing to do # mod_rewrite RewriteEngine On # Dynamische Seiten laden RewriteCond %REQUEST_URI% ^homepage/(.*)/(.*)\.html [NC] RewriteRule ^.* /script.php?category=$1&page=$2 [R,L] Die Anweisung soll folgendes durchführen: Bedinungen: - bei Aufruf von "dev5-media.de/homepage/[kategorie_titel]/[seiten_titel].html // "homepage" existiert nicht. es ist ein keyword für mod_rewrite. - nur Endung ".html" nicht ".htm" - Groß- und Kleinschreibung wird nicht beachtet Anweisungen: - /scripts.php?category=[kategorie_titel]&page=[seiten_titel] Eigenschaften: - definitiv letzte Regel für mod_rewrite - neue url übermitteln
geloescht_JesterDay Geschrieben 8. August 2007 Geschrieben 8. August 2007 RewriteCond %REQUEST_URI% ^[b]/[/b]homepage/(.*)/(.*)\.html [NC] Denke das hilft, auch wenn ich keine wirkliche Frage oder Problemstellung in deinem Beitrag gefunden habe EDIT: Natürlich muss bei der RewriteRule derselbe Ausdruck hin. Ein RewriteRule .* Bla bringt dir gar nichts, da der Reg.Ausdruck vorne ja entscheidet was hinten mit gemacht wird. EDIT2: RewriteCond %REQUEST_URI% ^/homepage/.*/.*\.html [NC] RewriteRule ^/homepage/(.*)/(.*)\.html /script.php?category=$1&page=$2 [R,L] Das, würde ich jetzt mal sagen, sollte funktionieren.
burnersk Geschrieben 8. August 2007 Autor Geschrieben 8. August 2007 Nun, mein Code funktioniert NICHT ...
burnersk Geschrieben 8. August 2007 Autor Geschrieben 8. August 2007 # mod_rewrite RewriteEngine On # Dynamische Seiten laden RewriteCond %REQUEST_URI% ^/homepage/(.*)/(.*)\.html [NC] RewriteRule ^/homepage/(.*)/(.*)\.html /script.php?category=$1&page=$2 [R,L]Funktioniert leider auch nicht
geloescht_JesterDay Geschrieben 8. August 2007 Geschrieben 8. August 2007 # mod_rewrite RewriteEngine On # Dynamische Seiten laden RewriteCond %[b]{[/b]REQUEST_URI[B]}[/B]% ^/homepage/(.*)/(.*)\.html [NC] RewriteRule ^homepage/(.*)/(.*)\.html /script.php?category=$1&page=$2 [R,L] Ansonsten: RewriteLog /var/log/apache2/rewriteLog RewriteLogLevel 5 Level kann eine Zahl von 0(nichts) bis 9 (alles) sein. Geht allerdings nicht in einer .htaccess Datei. EDIT: Und produktiv sollte das nicht höher als 2 stehen
burnersk Geschrieben 8. August 2007 Autor Geschrieben 8. August 2007 Jetzt hat es geklappt. Vielen Dank.
Mascha Geschrieben 9. August 2007 Geschrieben 9. August 2007 Vielleicht noch ein [R=301,L] für die permanente Umleitung anstatt der temporären?
geloescht_JesterDay Geschrieben 10. August 2007 Geschrieben 10. August 2007 Vielleicht noch ein [R=301,L] für die permanente Umleitung anstatt der temporären? Passt hier IMHO gar nicht hin. Was er mit der Lösung macht sind SEO-Links, keine Umleitung zu einer neuen Seite. Sprich der Client bekommt von der Umleitung gar nichts mit (und soll das auch gar nicht).
Mascha Geschrieben 10. August 2007 Geschrieben 10. August 2007 Passt hier IMHO gar nicht hin. Was er mit der Lösung macht sind SEO-Links, keine Umleitung zu einer neuen Seite. Sprich der Client bekommt von der Umleitung gar nichts mit (und soll das auch gar nicht). Aber er macht doch oben mit [R,L] eine Umleitung, anstatt ein unsichtbares Rewrite mit [L]. Nur ohne Angabe des Codes wird es eine temporäre mit 302 anstatt einer permanenten mit 301. Gerade noch mal getestet. Dies steht in meiner .htaccess RewriteEngine on RewriteCond %{REQUEST_URI}% ^/homepage/(.*)/(.*)\.html [NC] RewriteRule ^homepage/(.*)/(.*)\.html /album.php?cat=$1&album=$2 [R,L] Dies ist das Output: D:\wget>wget --server-response http://localhost/homepage/e/5.html --07:48:55-- http://localhost/homepage/e/5.html => `5.html' Resolving localhost... 127.0.0.1 Connecting to localhost[127.0.0.1]:80... connected. HTTP request sent, awaiting response... 1 HTTP/1.1 302 Found 2 Date: Fri, 10 Aug 2007 06:48:55 GMT 3 Server: Apache/2.0.53 (Win32) mod_ssl/2.0.53 OpenSSL/0.9.7f PHP/5 4 Location: http://localhost/album.php?cat=e&album=5 5 Content-Length: 342 6 Keep-Alive: timeout=15, max=100 7 Connection: Keep-Alive 8 Content-Type: text/html; charset=iso-8859-1 Location: http://localhost/album.php?cat=e&album=5 [following] --07:48:55-- http://localhost/album.php?cat=e&album=5 => `album.php@cat=e&album=5' Connecting to localhost[127.0.0.1]:80... connected. HTTP request sent, awaiting response... 1 HTTP/1.1 200 OK 2 Date: Fri, 10 Aug 2007 06:48:55 GMT 3 Server: Apache/2.0.53 (Win32) mod_ssl/2.0.53 OpenSSL/0.9.7f PHP/5 4 X-Powered-By: PHP/5.0.4 5 Content-Length: 4779 6 Keep-Alive: timeout=15, max=100 7 Connection: Keep-Alive 8 Content-Type: text/html 100%[====================================>] 4,779 --.--K/s 07:48:55 (4.56 MB/s) - `album.php@cat=e&album=5' saved [4779/4779]
geloescht_JesterDay Geschrieben 10. August 2007 Geschrieben 10. August 2007 Aber er macht doch oben mit [R,L] eine Umleitung, anstatt ein unsichtbares Rewrite mit [L]. Nur ohne Angabe des Codes wird es eine temporäre mit 302 anstatt einer permanenten mit 301. Oh, stimmt. Das R hab ich ganz übersehen. Von daher sollte er das R lieber weglassen. Ich denke das steht da einfach aus Unwissen. Ich hab das aber z.B. da auch gar nicht erwartet (weil ich einen SEO-Link erwartet hab bzw dessen Umschrteibung), also ist mir das auch nicht aufgefallen...
Mascha Geschrieben 10. August 2007 Geschrieben 10. August 2007 Oh, stimmt. Das R hab ich ganz übersehen. Von daher sollte er das R lieber weglassen. Ich denke das steht da einfach aus Unwissen. Ich zitiere: "Eigenschaften: - definitiv letzte Regel für mod_rewrite - neue url übermitteln" Also steht das R da mit voller Absicht.
geloescht_JesterDay Geschrieben 10. August 2007 Geschrieben 10. August 2007 Ich zitiere: "Eigenschaften: - definitiv letzte Regel für mod_rewrite - neue url übermitteln" Also steht das R da mit voller Absicht. Das kann auch aus einem Verständnissproblem stammen. Klar, ich interpretiere da vielleicht zuviel rein, aber die Form die seine Links haben und die form, die dann umgeschrieben aufgerufen werden, das sieht für mich klar nach SEO aus. Aber der Client muss von der umgeschriebenen URL ja nichts wissen, von daher kann man "url übermitteln" auch so verstehen, dass die umgeschriebene URL an den Server übermittelt wird (was mod_rewrite ja generell tut). Also falls er das wirklich als redirect will, dann hast du u.U. recht (falls die Umleitung nicht wirklich nur temporär ist), falls er das nur zur Vereinfachung der Links haben will, dann ist das Weglassen der bessere weg. Aufklären kann das aber nur der OP.
burnersk Geschrieben 15. August 2007 Autor Geschrieben 15. August 2007 Hi. Bin erst jetzt vom Einsatz zurück. Also folgendes... SEO in der release: - user kann auf dyn seite zugreifen durch test.de/dynpage/category/title.html (1) - user kann auf dyn seite direkt zugreifen durch test.de/scripts/getpage?id=1234 (2) - die url wird nur intern geändert. es wird keine informationen an den client hierüber gesendet - (1) muss auf jeden fall stehen bleiben. wegen ranking. SEO jetzt (dev): - user kann auf dyn seite zugreifen durch test.de/dynpage/category/title.html (1) - user kann auf dyn seite direkt zugreifen durch test.de/scripts/getpage?id=1234 (2) - die url (1) soll zu testzwecken in den getpage Aufruf (2) umgewandelt werden. und dann an den user übergeben werden (tempoäres redirect via mod_rewrite)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden