mmofacts.com

Mod_rewrite

gepostet vor 16 Jahre, 8 Monate von Makconner
so.. ich hab mich jetzt bissel belesen ...
Allerdings hab ich da noch paar grundlegende Fragen...
1.
Ist es richtig das man seine Links auf der Seite nun immer nach einem bestimten Chema ordnet und eigentlich nur noch Werte übergibt...
zB: Domain/wert1/wert2/wert3
2.
Funzt das nur in eine Richtung? also... sowas wie Domain/index.php?klaus=1&Peter=2 wird sicher net durch einen Befehl in Domain/1/2 umgewandelt... man muss schon den Link wie in Frage 1 IMMER gestalten.. oder?
2.1
Was ich in die Adressleiste schreibe (GET) steht auch da... oder kann ich da auch was trixen / generieren?
3.
welcher Sinn wird hier verfolgt.. nur eine kürzere Schreibweise?
4.
Ist eine GET Übergabe jetzt sicherer? Und wenn ja wieso?
5.
Hab ich was übersehen?
eventuell ist meine Vorstellung davon noch etwas zu sehr verkürzt... hab nix gegen einen Denkanstoss
gepostet vor 16 Jahre, 8 Monate von Kallisti
Original von Makconner
so.. ich hab mich jetzt bissel belesen ...

fein

Allerdings hab ich da noch paar grundlegende Fragen...
1.
Ist es richtig das man seine Links auf der Seite nun immer nach einem bestimten Chema ordnet und eigentlich nur noch Werte übergibt...
zB: Domain/wert1/wert2/wert3
Kann man machen und ist sicherlich sinnvoll, jup.
2.

Funzt das nur in eine Richtung? also... sowas wie Domain/index.php?klaus=1&Peter=2 wird sicher net durch einen Befehl in Domain/1/2 umgewandelt... man muss schon den Link wie in Frage 1 IMMER gestalten.. oder?
Jo, deshalb musst du bei den meisten Systemen mit mod_rewrite support das Ganze in der Konfiguration umschalten (Forensysteme, wikis...) - dementsprechend generieren die ihre Links anders.
mod_rewrite ist ja ein Apache Modul, das nur beim Request selbst aktiv wird und die URL basierend auf regulaeren Ausdruecken, die du vorher definiert hast, in ein anderes Format umschreibt. Und es wird eben nur beim Request selbst aktiv und nicht bei der Response.
2.1

Was ich in die Adressleiste schreibe (GET) steht auch da... oder kann ich da auch was trixen / generieren?
Inwiefern? Wie gesagt, das ist eine einfache Konvertierung der Daten die den Weg "Browser -> Server" nehmen und nicht umgekehrt. Wenn du etwas aendern moechtest, machst du das in einer selbstprogrammierten Logik.
3.

welcher Sinn wird hier verfolgt.. nur eine kürzere Schreibweise?
Kuerzer, schicker, besser zu merken, verstaendlicher, u.U. besser zu bookmarken, sieht schoener aus und allem voran bessere Suchmaschinenkompatiblitaet. Und wget freut sich, wenn es solche Seiten mirrorn darf.
4.

Ist eine GET Übergabe jetzt sicherer? Und wenn ja wieso?
Es ist nix anderes als vorher, nur das Format sieht anders aus.
gepostet vor 16 Jahre, 8 Monate von Makconner
Super... das war mal ne satten Antwort.
Vielen Dank...
gepostet vor 16 Jahre, 8 Monate von Macavity
Du kannst aber leicht ne Logik in dein Script integrieren das URLs die "falsch" bei dir ankommen auf die "richtige" URL weiterleiten.
gepostet vor 16 Jahre, 8 Monate von Makconner
ich nutze xxamp zur localen Entwicklung...
so wie ich das jetzt mitbekommen hab, funzt das local nicht....
kann man dafür sorgen das sich das ändert?
gepostet vor 16 Jahre, 8 Monate von Amun Ra
Ich glaube bei XAMPP musst du das Modul
#LoadModule rewrite_module modules/mod_rewrite.so
entkommentieren,
also die Raute entfernen
und dann den Apache neu starten.
gepostet vor 16 Jahre, 8 Monate von Makconner
Äh... also es geht.. das freut mich zu hören... aber... wie mach ich das jetzt genau?
Sicher muss ich in eigend einer Datei was ändert.. laut deiner Aussagen..
wo wäre das?
und was genau?
gepostet vor 16 Jahre, 8 Monate von Amun Ra
Du musst die Einstellung in der httpd.conf ändern.
Bei mir liegt die zum Beispiel hier:
D:\Apache\conf\httpd.conf
Edit: cherry war schneller
gepostet vor 16 Jahre, 8 Monate von Kallisti
Und mit einem schoenen Betriebssystem und vernuenftiger Paketverwaltung, statt Xampp Unfug, haette ein "a2enmod rewrite" gereicht und die Konfiguration waere logisch und sauber modular getrennt in apache2.conf, httpd.conf, ports.conf conf.d/, mods-available/, sites-available/ und mods-enabled und sites-enabled mit symlinks auf die jeweils aktivierten Module und Seiten.
Mit anderen Worten: Xampp suckt derbe.
gepostet vor 16 Jahre, 8 Monate von Makconner
Hallo, ich hab das jetzt gecheckt.... aber es macht net ganz was es soll...
hier mein Ablauf..
xampp stoppen
in der config bei LoadModule rewrite_module modules/mod_rewrite.so die # entfernt
speichern
xampp neu starten
.htaccess einfügen
website local starten
das Ergebniss?
Es funzt fast... fast ... nur werden plötzlich Farben, css und Bilder nicht mehr angezeigt
der Inhalte der .htaccess zum Test
RewriteEngine On
RewriteRule ^(.*)/(.*)$ index.php
Es liegt aber zu 100% an der .htaccess, dem Inhalt dessen oder etwas in dem Zusammenhang. Wenn ich die .htaccess aus dem Ordner nehme geht alles wie es soll... nur ohne mod_rewrite.
gepostet vor 16 Jahre, 8 Monate von DrakeL
Original von Makconner
das Ergebniss?
Es funzt fast... fast ... nur werden plötzlich Farben, css und Bilder nicht mehr angezeigt

Wird ja alles so gemacht wie du es eingestellt hast. Du leitest ALLE Aufrufe auf die index.php um, also auch die Requests auf Bilder und CSS Dateien. Klar dass diese dann nicht mehr angezeigt werden können. Vielleicht solltest dich darauf beschränken alles was auf ".html" endet umzuleiten?
Eine kleine Seite, die zu dem Thema etwas erklärt und auch Beispiele liefert, wie man das Ganze anwendet (würde man bei Google auch finden): http://www.modrewrite.de/
gepostet vor 16 Jahre, 8 Monate von Makconner
ok.. hab verstanden...
ich bitte eben mal darum den Code hier so umzustellen.. das nur .php einträge umgelenkt werden....
also ich möchte dann die GET Links so angeben...
domain/wert1/wert2/wert3
hier der Alte
RewriteEngine On
RewriteRule ^(.*)/(.*)$ index.php
gepostet vor 16 Jahre, 8 Monate von poncho
Eine recht simple Methode ohne mod_rewrite wäre noch diese:
Dein Script ist bspw. domain.de/bla
In der .htaccess kommt dann folgendes rein:
 

ForceType application/x-httpd-php
...wodurch die Datei auch ohne php-Endung als PHP-Script behandelt wird.
Im Browser kannst du dann URLs wie domain.de/bla/wert1/wert2 verwenden. Das Script holt dann aus $_SERVER['REQUEST_URI'] die übergebenen Werte.

Auf diese Diskussion antworten