Seite 1 von 2

kleines Problem mit rewrite engine

Verfasst: 09.02.2005 17:55
von mgutt
Hi,

wenn ich diesen Link z.B. aufrufe:

http://www.maxrev.de/forum/viewtopic.ph ... 9&start=20

der noch bei Google gespeichert ist kommt eine total komische Seite bei raus?!

Ich habe diesen Befehl der .htaccess hinzugefügt:

Code: Alles auswählen

# change every URL to www.maxrev.de
RewriteCond %{HTTP_HOST} !^www\.maxrev\.de$ 
RewriteRule ^(.*)$ http://www.maxrev.de/$1 [L,R=301]
Sinn der Codes sollte sein, dass die User von max-rev.de auf maxrev.de umgeleitet werden sollten.

Das klappt auch hat aber anscheinend den oben genannten Nebeneffekt. Hat jemand einen Lösungsvorschlag für mich?

Zur Info: der oben genannte Link verweist auf den Unterordner /forum/. Den habe ich wegreduziert. Also wäre ein rewrite der User von url/forum/ auf url/ auch sehr hilfreich, falls da jemand was weiß ;) bzw. würde das wahrscheinlich mein problem lösen :D

Verfasst: 09.02.2005 19:18
von larsneo
probier' einmal

Code: Alles auswählen

Redirect permanent /forum http://www.maxrev.de 

Verfasst: 09.02.2005 19:28
von mgutt
das geht, aber er übergibt die get-variablen nicht :cry:

merkt google die weiterleitung und erhält einen R=301 Hinweis?

Verfasst: 09.02.2005 19:42
von larsneo
neuer versuch

Code: Alles auswählen

RewriteRule ^/forum/(.*)$ /$1 [L,R=301]
und ja - google erkennt ein redirect permanent genauso wie den statuscode 301

Verfasst: 09.02.2005 20:01
von mgutt
Hier meine .htaccess:

Code: Alles auswählen

AddType application/x-httpd-php .php

ErrorDocument 400 http://www.maxrev.de/error404.php
ErrorDocument 401 http://www.maxrev.de/error404.php
ErrorDocument 402 http://www.maxrev.de/error404.php
ErrorDocument 403 http://www.maxrev.de/error404.php
ErrorDocument 404 http://www.maxrev.de/error404.php
ErrorDocument 500 http://www.maxrev.de/error404.php

DirectoryIndex index.php index.html index.htm default.htm default.html

RewriteEngine On

# change every /forum/ to /
# RewriteCond %{HTTP_HOST} !^www\.maxrev\.de/forum/$ 
# RewriteRule ^(.*)$ http://www.maxrev.de/$1 [L,R=301]
# RewriteRule ^/forum/(.*)$ http://www.maxrev.de/$1 [R=301,L]
RewriteRule ^/forum/(.*)$ /$1 [L,R=301]
# RewriteRule ^forum/(.*)$ http://www.maxrev.de/$1 [L,R=301]
# RewriteRule ^/forum/(.*)$ http://www.maxrev.de/$1 [L,R=301]

# change every URL to www.maxrev.de
RewriteCond %{HTTP_HOST} !^www\.maxrev\.de$ 
RewriteRule ^(.*)$ http://www.maxrev.de/$1 [L,R=301]

# prevent access from santy webworm a-e
RewriteCond %{QUERY_STRING} ^(.*)highlight=\%2527 [OR]
RewriteCond %{QUERY_STRING} ^(.*)rush=\%65\%63\%68 [OR]
RewriteCond %{QUERY_STRING} ^(.*)rush=echo [OR]
RewriteCond %{QUERY_STRING} ^(.*)wget\%20
RewriteRule ^.*$ http://127.0.0.1/ [R,L]

# prevent pre php 4.3.10 bug
RewriteCond %{HTTP_COOKIE}% s:(.*):\%22test1\%22\%3b
RewriteRule ^.*$ http://127.0.0.1/ [R,L]

# prevent perl user agent (most often used by santy)
RewriteCond %{HTTP_USER_AGENT} ^lwp.* [NC]
RewriteRule ^.*$ http://127.0.0.1/ [R,L]


# Short URL implementation [larsneo]
RewriteCond %{REQUEST_FILENAME} /forum.htm
RewriteRule (.*) /forum.php [L]

RewriteCond %{REQUEST_FILENAME} /forum-mark.htm
RewriteRule (.*) /forum.php?mark=forums [L]

RewriteCond %{REQUEST_FILENAME} /category([0-9]*).htm
RewriteRule (.*) /forum.php?c=%1 [L]

RewriteCond %{REQUEST_FILENAME} /forum([0-9]*)-([0-9]*)-([0-9]*).htm
RewriteRule (.*) /viewforum.php?f=%1&topicdays=%2&start=%3 [L]

RewriteCond %{REQUEST_FILENAME} /forum([0-9]*)-([0-9]*).htm
RewriteRule (.*) /viewforum.php?f=%1&start=%2 [L]

RewriteCond %{REQUEST_FILENAME} /forum([0-9]*)-mark.htm
RewriteRule (.*) /viewforum.php?f=%1&mark=topics [L]

RewriteCond %{REQUEST_FILENAME} /forum([0-9]*).htm
RewriteRule (.*) /viewforum.php?f=%1 [L]

RewriteCond %{REQUEST_FILENAME} /ptopic([0-9]*).htm
RewriteRule (.*) /viewtopic.php?t=%1&view=previous [L]

RewriteCond %{REQUEST_FILENAME} /ntopic([0-9]*).htm
RewriteRule (.*) /viewtopic.php?t=%1&view=next [L]

RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*)-([a-zA-Z0-9]*).htm
RewriteRule (.*) /viewtopic.php?t=%1&start=%2&postdays=%3&postorder=%4&highlight=%5 [L]

RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).htm
RewriteRule (.*) /viewtopic.php?t=%1&postdays=%2&postorder=%3&start=%4 [L]

RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*)-([0-9]*).htm
RewriteRule (.*) /viewtopic.php?t=%1&start=%2 [L]

RewriteCond %{REQUEST_FILENAME} /ftopic([0-9]*).htm
RewriteRule (.*) /viewtopic.php?t=%1 [L]

RewriteCond %{REQUEST_FILENAME} /fpost([0-9]*).htm
RewriteRule (.*) /viewtopic.php?p=%1 [L]

RewriteCond %{REQUEST_FILENAME} /post-newtopic-([0-9]*).htm
RewriteRule (.*) /posting.php?mode=newtopic&f=%1 [L]

RewriteCond %{REQUEST_FILENAME} /post-reply-([0-9]*).htm
RewriteRule (.*) /posting.php?mode=reply&t=%1 [L]

RewriteCond %{REQUEST_FILENAME} /post-([a-z]*)-([0-9]*).htm
RewriteRule (.*) /posting.php?mode=%1&p=%2 [L]

RewriteCond %{REQUEST_FILENAME} /album.htm
RewriteRule (.*) /album.php [L]

RewriteCond %{REQUEST_FILENAME} /palbum.htm
RewriteRule (.*) /album_personal_index.php [L]

RewriteCond %{REQUEST_FILENAME} /palbum([0-9]*).htm
RewriteRule (.*) /album_personal.php?user_id=%1 [L]

RewriteCond %{REQUEST_FILENAME} /profile([0-9]*).htm
RewriteRule (.*) /profile.php\?mode=viewprofile&u=%1 [L]

RewriteCond %{REQUEST_FILENAME} /search-author-(.*).htm
RewriteRule (.*) /search.php\?search_author=%1 [L]

RewriteCond %{REQUEST_FILENAME} /search-([0-9]*)-([0-9]*).htm
RewriteRule (.*) /search.php\?search_id=%1&start=%2 [L]

RewriteCond %{REQUEST_FILENAME} /search-([a-zA-Z]*).htm
RewriteRule (.*) /search.php\?search_id=%1 [L]

RewriteCond %{REQUEST_FILENAME} /privmsg-([a-zA-Z]*)-([0-9]*).htm
RewriteRule (.*) /privmsg.php\?mode=%1&u=%2 [L]

RewriteCond %{REQUEST_FILENAME} /privmsg-([a-zA-Z]*).htm
RewriteRule (.*) /privmsg.php\?folder=%1 [L]

RewriteCond %{REQUEST_FILENAME} /register.htm
RewriteRule (.*) /profile.php\?mode=register&agreed=true [L]

RewriteCond %{REQUEST_FILENAME} /profile-([a-zA-Z0-9]*).htm
RewriteRule (.*) /profile.php\?mode=%1 [L]

RewriteCond %{REQUEST_FILENAME} /faq.htm
RewriteRule (.*) /faq.php [L]

RewriteCond %{REQUEST_FILENAME} /search.htm
RewriteRule (.*) /search.php [L]

RewriteCond %{REQUEST_FILENAME} /memberlist.htm
RewriteRule (.*) /memberlist.php [L]

RewriteCond %{REQUEST_FILENAME} /groups.htm
RewriteRule (.*) /groupcp.php [L]

RewriteCond %{REQUEST_FILENAME} /online.htm
RewriteRule (.*) /viewonline.php [L]
Wie du siehst habe ich ein paar Varianten schon durch ;)

Was ich einfach nicht ralle ist, warum dieser Link überhaupt geht?! Normalerweise müsste er doch ein 404 Verursachen.

Naja wäre mir egal, wenn die Weiterleitung gehen würde :x

Verfasst: 09.02.2005 20:26
von mgutt
ich habe mal alle rewrite-befehle aus der .htaccess entfernt. aber trotzdem ruft der bei der url www.maxrev.de/forum/ die seite auf.

wohlgemerkt existiert auf dem server kein ordner "forum".

ich bin jetzt doch ein wenig verwirrt.

EDIT: ach ne bei Apache war das doch irgendwie zum Teil egal. Stimmt. Der öffnet in diesem Fall nicht den Ordner "Forum" sondern die "forum.php". Also doch nicht ungewöhnlich.

Tja fehlt also nur noch die richtige Umleitung ;)

Wir können zum Testen ja noch einen anderen Ordner nehmen.

Und zwar der Ordner "chCounter2.3" heißt jetzt "statistics".

Die passenden URL mit Variablen wäre die:

www.maxrev.de/chCounter2.3/statistics.php?details=ie

mit:

Code: Alles auswählen

Redirect permanent /chCounter2.3 http://www.maxrev.de/statistics
kommt das raus:

www.maxrev.de/statistics/statistics.php


mit:

Code: Alles auswählen

RewriteRule ^/chCounter2.3/(.*)$ statistics/$1 [L,R=301]
kommt error404. (er wollte auf die Datei /chCounter2.3/statistics.php zugreifen, konnte sie aber nicht finden.

ist aber eigentlich auch logisch, weil doch nur die statistics vorgetäuscht wird und er weiterhin aus dem alten verzeichnis laden will (richtig?!).

Verfasst: 09.02.2005 21:25
von mgutt
Ok, ich hätte gerne Applause ;)

Das Redirect permanent brauche ich wohl zusätzlich weil der Ordner zufällig genauso heißt wie die .php Datei.

Code: Alles auswählen

Redirect permanent /forum http://www.maxrev.de

RewriteEngine On

# route the changed directories
RewriteRule ^chCounter2.3(.*)$ /statistics$1 [L,R=301]
RewriteRule ^forum(.*)$ $1 [L,R=301]

Verfasst: 09.02.2005 21:43
von mgutt
@ larsneo

leider gehts doch nicht :oops:

da war ich ein bisschen voreilig. die weiterleitung sind zwar alle gut und funktionieren, aber durch diese zeile:

Code: Alles auswählen

RewriteRule ^forum(.*)$ $1 [L,R=301]
wird nicht nur der ordner "forum" umgeleitet sondern auch jede datei, die so heißt, also meine forum.php / forum.htm leider auch. und das gibt dann ne lustige error 404 ;)

menno. sag doch mal einer was dazu :cry:

Verfasst: 09.02.2005 22:08
von larsneo

Code: Alles auswählen

RewriteRule ^forum/(.*)$ $1 [L,R=301]

Verfasst: 09.02.2005 22:22
von mgutt
daraus macht er:

http://www.maxrev.de/www/htdocs/*****un ... 9&start=20

deswegen wieder error 404