Seite 1 von 1

htacces und GET-Variablen?

Verfasst: 30.05.2005, 09:41
von pi-de
Guten Morgen,

ich habe gerade bei einem Projekt einige Pfade ändern müssen.

Auszug:

Code: Alles auswählen

RedirectPermanent /foo/ http://domain.de/extra/foo/
......
RewriteEngine On
RewriteBase /
RewriteRule ^([a-z0-9-]+)/$ index.php?cat=$1 [L]
Wenn ich nun domain.de/foo/ aufrufe, komme ich
auf domain.de/extra/foo/?cat=foo

Hatte das Problem schon mal jemand oder kann mir
bitte jemand auf die Schnelle helfen?

Verfasst:
von

htacces und GET-Variablen?

Verfasst: 31.05.2005, 07:03
von pi-de
Au verdammt. Weiß wirklich niemand Rat oder hat eine Idee / Hinweis?

htacces und GET-Variablen?

Verfasst: 31.05.2005, 09:32
von robo
Was ist denn nun das Problem?

cu, Robo :)

Verfasst: 31.05.2005, 12:51
von pi-de
Hi robo,

dass ich, wenn ich "domain.de/foo/" aufrufe, auf "domain.de/extra/foo/?cat=foo" statt auf
"domain.de/extra/foo/" weitergeleitet werde. :(

htacces und GET-Variablen?

Verfasst: 31.05.2005, 14:24
von robo
Sehr merkwürdig, das. Ich habe keine Erklärung, aber eine Lösung:

Code: Alles auswählen

Redirect Permanent /foo/ http://test.robo.local/extra/foo/

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !/foo
RewriteRule ^([a-z0-9-]+)/$ index.php?cat=$1 [L]
cu, Robo :)

Verfasst: 31.05.2005, 16:08
von pi-de
Ja ist wirklich sehr merkwürdig.

Vielen Dank für deinen Tipp!
Dein Code funktioniert überall da, wo sich
das Hauptverzeichnis nicht geändert hatte, so wie
in meinem Beispiel.
Für die Verzeichnisse, die sich nicht geändert hatten,
habe ich jetzt die wichtigsten Pfade nach der gleichen
Methode mit Unterordnern aufgelistet.
Ist eine 20KB+ htacces-Datei schlecht? *g*

Verfasst: 31.05.2005, 16:35
von robo
pi-de hat geschrieben:Ja ist wirklich sehr merkwürdig.
Ich dachte erst, dass vielleicht die Rewrites vor den Redirects ausgeführt werden - aber nach dem Rewrite passt ja das Muster des Redirects nicht mehr ... grübel ... ich verstehe es einfach nicht.
pi-de hat geschrieben:Vielen Dank für deinen Tipp!
Keine Ursache. Hat mich interessiert, drum habe ich's selbst ausprobiert ...

BTW, es wäre vielleicht besser, statt
RewriteCond %{REQUEST_URI} !/foo
RewriteCond %{REQUEST_URI} !^/foo
zu schreiben.
pi-de hat geschrieben:Dein Code funktioniert überall da, wo sich
das Hauptverzeichnis nicht geändert hatte, so wie
in meinem Beispiel.
Für die Verzeichnisse, die sich nicht geändert hatten,
habe ich jetzt die wichtigsten Pfade nach der gleichen
Methode mit Unterordnern aufgelistet.
Du verstehst es wirklich, dich unheimlich kompliziert auszudrücken ... ich kann dir nicht folgen.
pi-de hat geschrieben:Ist eine 20KB+ htacces-Datei schlecht? *g*
Gute Frage, weiss ich nicht. Vielleicht solltest du einfach mal Performance-Messungen machen.

cu, Robo :)

htacces und GET-Variablen?

Verfasst: 31.05.2005, 21:44
von unique
Je größer die .htaccess ist, desto mehr Performance benötigt sie, da sie bei jedem Aufruf mehrere Male für jedes Modul geladen wird, bei dem Veränderungen per .htaccess erlaubt sind. Bei großen Dateien wird diese dann eben mehrmals geladen und wirkt sich auf die Performance aus.

Einfach mal testen ;)

Verfasst: 01.06.2005, 06:56
von pi-de
robo hat geschrieben:Ich dachte erst, dass vielleicht die Rewrites vor den Redirects ausgeführt werden - aber nach dem Rewrite passt ja das Muster des Redirects nicht mehr ... grübel ... ich verstehe es einfach nicht.
Ich "dachte" auch schon alles ;)
Jedenfalls, wenn ich die Redirects so schreibe:
RedirectPermanent /foo/ https://domain.de/extra/foo/[b]?[/b]
Wird nichts drangehängt. Der richtige Seiteninhalt
wird jedoch bei beiden Varianten (also mit '?' und ohne)
angezeigt?!
BTW, es wäre vielleicht besser, statt
RewriteCond %{REQUEST_URI} !/foo
RewriteCond %{REQUEST_URI} !^/foo
zu schreiben.
Ja, hatte ich gemacht. Nur andersrum, also
die Ordner, die ok sind aufgelistet:
RewriteCond %{REQUEST_URI} ^/neu1 [OR]
RewriteCond %{REQUEST_URI} ^/neu2

Du verstehst es wirklich, dich unheimlich kompliziert auszudrücken ... ich kann dir nicht folgen.
Sorry, ich versuche es mit einem Beispiel.
Ich habe 3 "Ordner" in dem Projekt vor dem Redesign:
/alt1/ , /alt2/ und /neutral/

nach dem Redesign:
/neu1/ , /neu2/ und /neutral/

Dann würde meine Condition so aussehen:
RewriteCond %{REQUEST_URI} ^/neu1 [OR]
RewriteCond %{REQUEST_URI} ^/neu2 [OR]
RewriteCond %{REQUEST_URI} ^/neutral
RewriteRule ^.....


Und greift auch bei den alten Pfaden die
mit /neutral/ beginnen. Das meinte ich, mit
"Hauptordner die gleich geblieben sind".

Die alten Pfade in /neutral/ habe ich dann
nahezu alle manuell umgeschrieben und vor die
oben gesehene Rule gesetzt.

RewriteCond %{REQUEST_URI} ^/neutral/alt74/$
RewriteRule ^(.*)$ /neutral/16-blablub/ [R=301]
RewriteCond %{REQUEST_URI} ^/neutral/alt80/$
RewriteRule ^(.*)$ /neutral/333-blubbla/ [R=301]

....

Wegen der Größe der Datei:
@unique:
Bisher ist der Server spürbar nur sehr wenig langsamer, aber man
merkt schon, dass es so ist wie du schreibst!
@robo:
Momentan geht es. Aber ein Test in der Richtung wäre
wirklich mal interessant. Müsste es aber bestimmt schon geben.