Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

mod_rewrite

Diskussion: mod_rewrite im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hallo Zusammen! Ich versuche mich gerade wein wenig am "Rewriten" meiner URLs da diese langsam nicht mehr ganz ansehnlich ...

Antwort
Alt 24.05.10, 16:34   #1 (permalink)
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard mod_rewrite

Anzeige

Hallo Zusammen!
Ich versuche mich gerade wein wenig am "Rewriten" meiner URLs da diese langsam nicht mehr ganz ansehnlich und vorallem SEO-gerecht sind.

Nun habe ich folgende .htaccess angelegt:

Code:
RewriteEngine On
RewriteRule ^([0-9]+)$ index.php?view=$1
Damit wollte ich erreichen, dass z.B. "http://localhost/disane/article/" in "http://localhost/disane/index.php?view=$1" umgewandelt wird.

Jedoch bekomm ich immer und immer wieder den 404-Error im Apache-Log, dass er die Ressource "http://localhost/disane/article/" nicht finden.

Scheinbar rewrited der dir URL nicht, aber ich sehe keinen Fehler.
Vielleicht sieht ja einer von Euch den Fehler.
Leider kenn ich mich nicht ganz so gut mit den RegExp aus.

Vielen Dank schon einmal!
reaLInsanity ist offline   Mit Zitat antworten
Alt 24.05.10, 19:50   #2 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

Hallo,
mit "[0-9]" kriegst du nur numerische Werte.
Wenn du beliebige Strings umleiten willst, solltest du eher sowas schreiben:
Code:
RewriteEngine On
RewriteRule ^([0-9a-zA-Z]+)/?$ index.php?view=$1
mfg, metax
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.05.10, 19:52   #3 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Hab mir deinen Rat mal zu Herzen genommen und das mal eingebaut.
Leider funktioniert dies auch nicht.

Ich weiß auch leider nicht, wie man solche RewriteRules anständig "debuggen" könnte, da ich die Logs der Rewrite-Engine nicht ans Laufen bekomme.

Oder kann man die Logs auch im Apache selbst einsehen?
reaLInsanity ist offline   Mit Zitat antworten
Alt 24.05.10, 19:57   #4 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

Hm, bei mir gehts.
Hier kannst du es mal testen:
http://www.planet-metax.de/hotlink/m..._test/article/

Ich hab als .htaccess genau den geposteten Inhalt genommen.

Kann es sein, dass dein Webserver kein mod_reqrite Modul installiert hat? Oder das du in deinem Verzeichnis nicht die Rechte hast, diese Option zu ändern?

Was für ein Webspace ist es denn?
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
Alt 24.05.10, 20:00   #5 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Also ich habs aktuell auf meinem lokalen XAMPP liegen wie es auf meinem Webspace (bei ALL-inkl) aussieht weiß ich nicht, kann ich aber gerne mal testen.

Zu den Rewrites habe ich auch direkt noch eine Frage:
Wie mache ich das am besten, dass Media-Files (sprich CSS, JS, blablubb) nicht über die RegEx geparsed werden ohne jedem Tag nun ne BaseURL zu übergeben.

Habe schon ein fertiges Projekt was ich nun versuche umzustellen und würde ungerne nun jeden Link ändern wollen (auch wenn es nur Suchen->Ersetzen) ist.
reaLInsanity ist offline   Mit Zitat antworten
Alt 24.05.10, 20:05   #6 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

Hallo,
ich hab hier noch ne Seite, die dir vielleicht weiterhilft: http://forum.modrewrite.de/topic82.html

Ansonsten: Du kannst vor einer RewriteRule mehrere Conditions angeben, die erfüllt sein müssen, damit die Regel greift.
In deinem Fall würdest du den Dateiname gegen ein Schema prüfen:
Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !/media/
RewriteRule ^([0-9a-zA-Z]+)/?$ index.php?view=$1
So werden alle URLs, die auf das Verzeichnis "media" verweisen, nicht umgeleitet.
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
Alt 24.05.10, 20:23   #7 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Hab mir mal deine Seite angesehen und einig Punkte abgearbeitet.
Also die Punkte 1 und 2 sind gegeben.

MOD_REWRITE ist in der httpd.conf an und eine Weiterlung via .htaccess auf z.B. Google läuft einwandfrei.

Er wirft mir im Apache-Log auch immer folgenden Fehler:
Code:
[Mon May 24 20:20:02 2010] [error] [client ::1] File does not exist: C:/xampp/htdocs/disane/events
Dass er das Verzeichnis "events" nicht findet ist ja klar, weil es nur rein "virtueller" Natur ist.

Auf meinem Webspace zeigt er zwar die Seite an, scheint aber die GET-Parameter nicht durchzuschleifen, wie man hier sieht http://staging.disane.de/events/.

Meine .htaccess sieht wie folgt aus:
Code:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !/css/ 
RewriteCond %{REQUEST_FILENAME} !/js/
RewriteCond %{REQUEST_FILENAME} !/images/
RewriteCond %{REQUEST_FILENAME} !/api/

RewriteRule ^/([0-9a-zA-Z]+)/$ ?view=$1
Anmerkung:
Wie ich gerade gesehen hab, scheinen die Conditions auch nicht zu funktionieren.
Ob da ein generelles Problem mit der Engine vorliegt?

Edit 1:
Mit der Rule geht es "RewriteRule ^([^/\.]+)/?$ index.php?view=$1 [L]".
Jedoch möchte ich nun z.B. auch auf einzelne IDs gehen, wie hier z.B.:

http://staging.disane.de/article/11/

Hab dafür die Rule "RewriteRule ^([^/\.]+)/([0-9]+)/?$ index.php?view=$1&id=$2 [L]" eingefügt.
Das Ergebis: Er zerschießt mir die Styles etc. wieder komplett, was ch nicht nachvollziehen kann weil diese ja eig. durch die Conditions ausgeschlossen werden.

Edit 2:
Habs nun hinbekommen. Hab einfach eine Base-URL hinzugefügt und nun gehts.
Jedoch scheint er mir mit dem Pattern "([^/\.]+)" keine Punkte zu matchen, denn sobald ich einen Punkt im eigentlichen Match habe steigt der aus und sagt 404.

Geändert von reaLInsanity (24.05.10 um 22:37 Uhr)
reaLInsanity ist offline   Mit Zitat antworten
Alt 27.05.10, 21:39   #8 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

Zitat:
Zitat von reaLInsanity Beitrag anzeigen
Jedoch scheint er mir mit dem Pattern "([^/\.]+)" keine Punkte zu matchen, denn sobald ich einen Punkt im eigentlichen Match habe steigt der aus und sagt 404.
Ja, das Pattern sagt in etwa: "Match' mir alles, was kein Slash oder Punkt ist".
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » mod_rewrite
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61