Zur Navigation

301 Weiterleitung auf umgeformte Links

1 Malan

Hallo,

ich habe mal eine frage zu einer 301 Weiterleitung. Ich bekomme es zwar auf html Dateien ohne Probleme hin.

Nun stehen aber bei Google noch Links von mir die umgeformt sind und da funktioniert es leider nicht. z.b. http://www.domain.de/tag/htm die sollen auch http://www.domain.de geleitet werden. Leider funktioniert es nicht.

Gibt es da eine andere Variante diese umgeformten Links umzuleiten.

Vielen Dank für Eure Antworten.
lG Malan

17.03.2009 22:25

2 Jörg Kruse

Wie sieht denn deine bisherige Weiterleitung aus?

Ich bekomme es zwar auf html Dateien ohne Probleme hin.

Du meinst damit Seiten, die auf ".html" enden?

z.b. http://www.domain.de/tag/htm die sollen auch http://www.domain.de geleitet werden.

Das heißt eine Weiterleitung auf die Startseite? Und "/tag/htm" ist kein Schreibfehler? Aus deinen obigen Erläuterungen hätte ich jetzt eher "/tag.htm" erwartet

18.03.2009 10:11 | geändert: 18.03.2009 10:12

3 Malan

Sry wenn ich mich evtl. falsch ausgedrückt habe.

Ich habe bei Google noch Links von mir gefunden die aus einem CMS stammen und somit umgeformt sind. Wie z.b. www.domain.de/tags/cms oder www.domain.de/tags/css.

Diese würde ich jetzt gern auf meine aktuelle Startseite weiterleiten mit 301. bekomme es aber nicht hin.

Auf:
RedirectPermanent /tags/cms http://www.domain.de

oder

RedirectPermanent http://www.domain.de/tags/css http://www.domain.de

reagiert es aber leider nicht.

lG Malan

18.03.2009 16:58

4 Jörg Kruse

Das sollte normalerweise funktionieren:

RedirectPermanent /tags/cms http://www.domain.de/

Vielleicht funkt da eine andere Direktive dazwischen - was steht denn noch in der .htaccess Datei?

18.03.2009 19:25

5 Malan

Hallo,

es ist eine Standart Drupal .htaccess Datei mit folgenden Inhalt.

#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
  Order allow,deny
</FilesMatch>

# Don't show directory listings for URLs which map to a directory.
Options -Indexes

# Follow symbolic links in this directory.
Options +FollowSymLinks

# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php

# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
  # There is no end quote below, for compatibility with Apache 1.3.
  ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>

# Set the default handler.
DirectoryIndex index.php

# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.

# PHP 4, Apache 1.
<IfModule mod_php4.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
  php_value magic_quotes_gpc                0
  php_value register_globals                0
  php_value session.auto_start              0
  php_value mbstring.http_input             pass
  php_value mbstring.http_output            pass
  php_value mbstring.encoding_translation   0
</IfModule>

# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
  # Enable expirations.
  ExpiresActive On

  # Cache all files for 2 weeks after access (A).
  ExpiresDefault A1209600

  # Do not cache dynamically generated pages.
  ExpiresByType text/html A1
</IfModule>

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on

  # If your site can be accessed both with and without the 'www.' prefix, you
  # can use one of the following settings to redirect users to your preferred
  # URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
  #
  # To redirect all users to access the site WITH the 'www.' prefix,
  # (http://example.com/... will be redirected to http://www.example.com/...)
  # adapt and uncomment the following:
  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
  #
  # To redirect all users to access the site WITHOUT the 'www.' prefix,
  # (http://www.example.com/... will be redirected to http://example.com/...)
  # uncomment and adapt the following:
  # RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
  # RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

  # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
  # VirtualDocumentRoot and the rewrite rules are not working properly.
  # For example if your site is at http://example.com/drupal uncomment and
  # modify the following line:
  # RewriteBase /drupal
  #
  # If your site is running in a VirtualDocumentRoot at http://example.com/,
  # uncomment the following line:
  # RewriteBase /

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

# $Id: .htaccess,v 1.90.2.3 2008/12/10 20:04:08 goba Exp $

lG Malan

19.03.2009 10:50

6 Jörg Kruse

Und wo hast du die Weiterleitung eingefügt? Idealerweise sollte sie am Anfang der Datei stehen, sie sollte aber auch weiter hinten funktionieren.

Das Weiterleitungsziel wird aber durch die pauschale RewriteRule beeinflusst, so dass das Resultat wohl nicht dem gewünschten entspricht. Man kann die Rule für diesen Fall durch eine weitere Bedingung aussetzen:

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteCond %{REQUEST_URI} !tags/cms
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Falls es auch dann nicht funktioniert, solltest du die .htaccess nochmals inklusive der Weiterleitung posten.

19.03.2009 11:14

7 Malan

Hallo,

das funktioniert.

jetzt muss ich sicher alle Links die ich weiterleiten will da auflisten?

Kann ich denn auch bestimmte Links auf bestimmte Seiten weiterleiten lassen?

lG Malan

19.03.2009 11:33

8 Jörg Kruse

jetzt muss ich sicher alle Links die ich weiterleiten will da auflisten?

Du meinst die von mir eingefügte RewriteCond, die eine Ausnahme definiert? Wenn diese Links einem gemeinsamen Muster entsprechen, kann (und sollte) man eine RewriteCond für dieses Muster erstellen.

Kann ich denn auch bestimmte Links auf bestimmte Seiten weiterleiten lassen?

Das macht die Redirect Direktive ja bereits? An zweiter Stelle wird das Weiterleitungsziel angegeben, da kannst du auch eine Unterseite angeben statt der Startseite

19.03.2009 11:43

9 Malan

Leider bekomme ich die Weiterleitung auf eine Unterseite nicht so ganz hin :(

RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteCond %{REQUEST_URI} !tag/galerie/
  RewriteCond %{REQUEST_URI} !category/blog/
  RedirectPermanent /kontakt/ http://www.domain.com/contact
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

lG Malan

19.03.2009 12:00

10 Jörg Kruse

Die Weiterleitungen würde ich (auch der Übersichts halber) ganz an den Anfang der .htaccess stellen:

RedirectPermanent /tags/cms http://www.domain.de/
RedirectPermanent /kontakt/ http://www.domain.com/contact
# undsoweiter

In dem Rewrite-Block hat diese jedenfalls nichts zu suchen. Dort definierst du lediglich die Ausnahmen zu der Rule, die alles auf die index.php umschreibt

RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteCond %{REQUEST_URI} !tag/galerie/
  RewriteCond %{REQUEST_URI} !category/blog/
  RewriteCond %{REQUEST_URI} !/kontakt/
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

19.03.2009 12:44 | geändert: 19.03.2009 12:45