Zur Navigation

neues Unterverzeichnis, Schrägstrich

1 jg1

Hallo,

ich habe eine Forumseite neu eingerichtet und jetzt 2 kleinere Probleme:

1. Aufruf www.domain.de/forum_alt/ oder www.domain.de/irgendwas/
mit Schrägstrich hinten kommen die Seiten, ohne Schrägstrich kommt nen Fehler. Ist sicher ein Prob in der htaccess, aber ich weiß nicht wo/wie ich das ändere.

2. Unsere alte Seite lag hier: www.domain.de/forum_alt/
Die neue Seite liegt jetzt hier: www.domain.de/forum_neu/

bei Google sind nun jede Menge Links schon drin, die auf die alte Seite verweisen. Kann man was in die htaccess schreiben, damit die alten indizierten Links nicht als Fehler von Google gewertet werden? Fliegen die mit der Zeit dann aus dem Index raus?

Meine htaccess im Root sieht jetzt so aus:
RewriteEngine on

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

# domain weiterleiten auf ordner /forum_neu
RewriteRule ^([^/]*)$ http://www.domain.de/forum_neu/$1 [R=301,L]

# eigene Fehlerseiten ausgeben
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html

Würde mich über Hilfe freuen.

16.10.2010 18:30 | geändert: 16.10.2010 18:31

2 Rudy

Die zweite Rule schließt mit [^/] die Slashes aus. Nach Deiner Beschreibung sollte es so funktionieren:

# domain weiterleiten auf ordner /forum_neu
RewriteRule ^forum_alt/(.*) http://www.domain.de/forum_neu/$1 [L,R=301]

16.10.2010 18:40

3 Jörg Kruse

1. Aufruf www.domain.de/forum_alt/ oder www.domain.de/irgendwas/
mit Schrägstrich hinten kommen die Seiten, ohne Schrägstrich kommt nen Fehler. Ist sicher ein Prob in der htaccess, aber ich weiß nicht wo/wie ich das ändere.

Bei real existierenden Verzeichnissen sollte sich mod_dir um die Weiterleitung kümmern.

Bei virtuellen oder nicht mehr existierenden Verzeichnissen könntest du vielleicht mithilfe von mod_rewrite weiterleiten. Ich vermute mal, du möchtest nur URLs ohne Punkt weiterleiten (also z.B. nicht /robots.txt nach /robots.txt/). Das könntest du so versuchen:

RewriteRule ^([^/^\.]+)$ http://%{HTTP_HOST}/$1/ [R=301,L]

16.10.2010 19:28

4 jg1

Hallo Rudy,
danke für deine Antwort. Das mit den Schrägstrichen funkt.
Hab jetzt allerdings das Problem, dass beim Aufruf der Domain
www.domain.de die VZ-Liste vom Roootverzeichnis kommt
und nicht sofort nach /forum_neu/ geleitet wird.
Kann ich einfach noch hinzufügen:
RewriteRule ^(.*)$ http://www.domain.de/forum_neu/$1 [R=301,L]
?

Sorry, zu spät Antwort von Jörg gesehen...





16.10.2010 19:33 | geändert: 16.10.2010 19:34

5 Jörg Kruse

Zitat von jg1
Hab jetzt allerdings das Problem, dass beim Aufruf der Domain
www.domain.de die VZ-Liste vom Roootverzeichnis kommt
und nicht sofort nach /forum_neu/ geleitet wird.
Kann ich einfach noch hinzufügen:
RewriteRule ^(.*)$ http://www.domain.de/forum_neu/$1 [R=301,L]
?

So leitest du nicht nur die Startseite weiter und erzeugst wahrscheinlich eine Endlosschleife von Weiterleitungen.

So könnte es funktionieren:

RewriteRule ^$ http://www.domain.de/forum_neu/ [R=301,L]

16.10.2010 19:54

6 jg1

Danke Jörg für deine Hilfe. Die andere Zeile versuch ich auch noch...
Jetzt hab ich's erstmal so und das funktioniert:

RewriteEngine on

# immer die vollstaendige domain anzeigen mit www
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301,L]

# URLs ohne Punkt und Schraegstrich weiterleiten auf Abschluss mit /
RewriteRule ^([^/^\.]+)$ http://%{HTTP_HOST}/$1/ [R=301,L]

# hauptdomain und vz forum_alt weiterleiten auf ordner forum_neu
RewriteRule ^([^/]*)$ http://www.domain.de/forum_neu/$1 [R=301,L]
RewriteRule ^forum_alt/(.*) http://www.domain.de/forum_neu/$1 [R=301,L]

Ein kleines Problemchen hab ich trzd noch:
Ich brauch noch Zugang zu www.domain.de/forum_alt/admin/
Der Link wird mir nun aber brav auf /forum_neu umgelenkt ... Eigentor... ;)
Kann ich dafür vorübergehend auch noch 'ne Zeile einbauen?

16.10.2010 20:14

7 Jörg Kruse

Du kannst mithilfe einer RewriteCond eine Ausnahme definieren:

RewriteCond %{REQUEST_URI} !/forum_alt/admin/
RewriteRule ^forum_alt/(.*) http://www.domain.de/forum_neu/$1 [R=301,L]

16.10.2010 21:07

8 jg1

Vielen Dank nochmal für die Hilfe. Jetzt klappt alles!
Hab noch bissel gegoggelt und die Zeile für mich so geändert:

RewriteCond %{REQUEST_URI} !/forum_alt/admin(.*)

16.10.2010 22:52

9 jg1

nabend,

soweit funkt dank eurer hilfe erstmal alles ganz gut bei uns... :)

habe mir nun ein neues verz sub angelegt und wollte jetzt per htacces
eine subdomain dafür einrichten, heisst, www.domain.de/sub/
soll mit http://sub.domain.de angezeigt werden.

aktuell sieht meine htaccess so aus:
RewriteEngine on

# immer die vollstaendige Domain aufrufen MIT www vorn
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301,L]

# URLs ohne Punkt und Schraegstrich weiterleiten auf Abschluss mit /
RewriteRule ^([^/^\.]+)$ http://%{HTTP_HOST}/$1/ [R=301,L]

# Hauptdomain weiterleiten auf Ordner bboard
RewriteRule ^([^/]*)$ http://www.domain.de/bboard/$1 [R=301,L]

# Ausnahmen fuer alten Adminbereich
RewriteCond %{REQUEST_URI} !/forum(.*)

# Ausnahmen für verz sub
RewriteCond %{REQUEST_URI} !/sub(.*)

#Subdomain /sub/  ???????????
RewriteCond %{HTTP_HOST} sub.domain.de$ [NC]
RewriteCond %{REQUEST_URI} !/sub/
RewriteRule ^(.*)$ sub/$1 [L]

# Verzeichnis forum weiterleiten auf Ordner bboard
RewriteRule ^forum/(.*) http://www.domain.de/bboard/$1 [R=301,L]

ich vermute, die 1. condition oben behindert die anzeige von sub als subdomain.
jetzt kommt bei aufruf von http://sub.domain.de immer: 'Server nicht gefunden'.
wie könnte man das prob lösen?
kann ich da auch wieder eine 'ausnahme' für den auruf von subdomains definieren?
wenn ja, wie macht man das nun wieder?
mr goggel hat mir leider bisher nicht helfen können... :/

29.10.2010 21:14

10 Jörg Kruse

habe mir nun ein neues verz sub angelegt und wollte jetzt per htacces
eine subdomain dafür einrichten, heisst, www.domain.de/sub/
soll mit http://sub.domain.de angezeigt werden.

Mit der htaccess Datei kannst du keine Subdomain einrichten - du kannst dort nur die Aufrufe einer bereits eingerichteten Subdomain umschreiben.

jetzt kommt bei aufruf von http://sub.domain.de immer: 'Server nicht gefunden'.

Die Subdomain muss in der Server- und DNS-Konfiguration (bzw. bei einem Webspace im dazugehörigen Kontrollpanel des Webhostingpakets) eingerichtet sein - ist das der Fall?

29.10.2010 22:00