Zur Navigation

Weiterleiten der Unterseiten

1 Jörg Kruse

[Die folgende Frage hat mir Nima per Mail zugesandt]

Mein Problem besteht darin, dass ich gestern einen Domainumzug von www.mugs-n-cups.de auf www.teeshop-mugsncups.de vorgenommen habe.

Die einfache Umleitung von www.mugs-n-cups.de zu www.teeshop-mugsncups.de geht einwandfrei.

Nun zum Problem: Die Unterseiten sollen auch per 301 weitergeleitet werden. Beispiel von

www.mugs-n-cups.de/Aromatisierter-Gruener-Tee:::76.html zu www.teeshop-mugsncups.de/Aromatisierter-Gruener-Tee:::76.html

Es geht einfach nicht =(

Im Anhang sende ich dir meine .htaccess, hoffe du kannst mir helfen.


    
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^mugs-n-cups.de/$ [NC]
    RewriteRule ^(.*)$ http://www.teeshop-mugsncups.de/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^www.mugs-n-cups.de/$ [NC]
    RewriteRule ^(.*)$ http://www.teeshop-mugsncups.de/$1 [R=301,L]

##-- $Id: .htaccess 3209 2012-07-12 11:51:11Z gtb-modified $

    <IfModule mod_php.c>
            php_value suhosin.session.encrypt Off
            php_value suhosin.session.cryptkey ''
    </IfModule>

##-- Default charset
#AddDefaultCharset UTF-8
AddDefaultCharset ISO-8859-15

##-- Disable the server signature
ServerSignature Off

##-- Turn off ETags in HTTP-header (use both directives)
<IfModule mod_headers.c>
  Header unset ETag
</IfModule>
FileETag None

##-- When caching of gzipped JS and CSS files is used, enable this setting
#<IfModule mod_headers.c>
#  Header set Vary Accept-Encoding
#</IfModule>

##-- when using Provider 1&1 set the following lines to activate PHP5
#AddType x-mapp-php5 .php
#AddHandler x-mapp-php5 .php

# Disable directory browsing (disabled by default as this causes problems on some servers)
#Options All -Indexes

<IfModule mod_deflate.c>
 
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
  <IfModule mod_headers.c>
    SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)s*,?s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
    RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
  </IfModule>
</IfModule>
 
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
<IfModule filter_module>
  FilterDeclare   COMPRESS
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/html
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/css
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/plain
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $text/x-component
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/javascript
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/json
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/xhtml+xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/rss+xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/atom+xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/vnd.ms-fontobject
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $image/svg+xml
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $application/x-font-ttf
  FilterProvider  COMPRESS  DEFLATE resp=Content-Type $font/opentype
  FilterChain     COMPRESS
  FilterProtocol  COMPRESS  DEFLATE change=yes;byteranges=no
</IfModule>
 
<IfModule !mod_filter.c>
  # Legacy versions of Apache
  AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
  AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
  AddOutputFilterByType DEFLATE image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</IfModule>
</IfModule>

##-- Customization of HTTP request and response headers
<IfModule mod_headers.c>
  <FilesMatch "\\.(ico|jpe?g|png|gif|swf|flv)$">
    Header set Cache-Control "max-age=2592000, public"
  </FilesMatch>
  <FilesMatch "\\.(css)$">
    Header set Cache-Control "max-age=604800, public"
  </FilesMatch>
  <FilesMatch "\\.(js)$">
    Header set Cache-Control "max-age=31556926, private"
  </FilesMatch>
  <FilesMatch "\\.(xml|txt)$">
    Header set Cache-Control "max-age=216000, public, must-revalidate"
  </FilesMatch>
  <FilesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </FilesMatch>
</IfModule>

##-- Generation of Expires and Cache-Control HTTP headers
<IfModule mod_expires.c>
  ExpiresActive On
      ExpiresDefault "access plus 1 minutes"
      ExpiresByType text/html "access plus 1 minutes"
      ExpiresByType text/css "access plus 604800 seconds"
      ExpiresByType text/javascript "access plus 1 years"
      ExpiresByType text/plain "access plus 604800 seconds"
      ExpiresByType application/javascript "access plus 1 years"
      ExpiresByType application/x-javascript "access plus 1 years"
      ExpiresByType application/x-shockwave-flash "access plus 1 years"
      ExpiresByType image/gif "access plus 604800 seconds"
      ExpiresByType image/jpeg "access plus 604800 seconds"
      ExpiresByType image/jpg "access plus 604800 seconds"
      ExpiresByType image/png "access plus 604800 seconds"
      ExpiresByType image/x-icon "access plus 1 years"
	  ExpiresByType image/icon "access plus 1 years"
      ExpiresByType image/ico "access plus 604800 seconds"
      ExpiresByType application/xhtml+xml "access plus 600 seconds"
      
</IfModule>

<IfModule mod_mime.c>
    AddType image/ico .ico
</IfModule>

##-- Configure php_flags if necessary
##-- BEGIN - use IfModule clause if PHP runs in CGI mode, otherwise just uncomment the lines with php_flag...
#<IfModule mod_php.c>

  ##-- Warn when arguments are passed by reference at function call time (from PHP5 allow_call_time_pass_reference is deprecated)
  #php_flag allow_call_time_pass_reference on

  ##-- Disable transparent sid support PHP-default is off (XTC Session only on first visit)
  #php_flag session.use_trans_sid off

  ##-- set suhosin flags because of errors with attributes (for webhosters with suhosin hardening patch enabled)
  #php_value suhosin.post.max_array_depth 0
  #php_value suhosin.post.max_array_index_length 0
  #php_value suhosin.post.max_vars 0
  #php_value suhosin.request.max_array_depth 0
  #php_value suhosin.request.max_array_index_length 0
  #php_value suhosin.request.max_vars 0

  ##-- set suhosin flags to have unencrypted session data, affecting "whos_online" & "shopping cart" (for webhosters with suhosin hardening patch enabled)patch enabled
  #php_value suhosin.session.encrypt Off
  #php_value suhosin.session.cryptkey ''

##-- END - use IfModule clause if PHP runs in CGI mode, otherwise just uncomment the lines with php_flag...
#</IfModule>

##-- Redirect error pages to Sitemap
##-- set the correct Path to ErrorDocument
ErrorDocument 400 /sitemap.html?error=400
ErrorDocument 401 /sitemap.html?error=401
ErrorDocument 402 /sitemap.html?error=402
ErrorDocument 403 /sitemap.html?error=403
ErrorDocument 404 /sitemap.html?error=404
ErrorDocument 500 /sitemap.html?error=500

##-----------------------------------------
##- SEO Shopstat Modul (Hartmut Koenig)
##-----------------------------------------
<IfModule mod_rewrite.c>
  ##-- Initialize and enable rewrite engine
  ##-- Documentation http://httpd.apache.org/docs/misc/rewriteguide.html
  RewriteEngine On

  ##-- EXAMPLE: If your shop is located at "http://www.yourdomain.com/shop",
  ##-- set the following line like e.g.: RewriteBase /shop/
  RewriteBase /

  ##-- Use canonical URLs
  ##-- redirect to www-domain, when www is missing and no subdomain given and not using an ssl-proxy
  ##-- HostEurope
  #RewriteCond %{HTTP:X-Forwarded-Server}   !^ssl\.webpack\.de$ [NC]
  ##-- 1und1
  #RewriteCond %{HTTP:X-Forwarded-Server}   !^ssl\.kundenserver\.de$ [NC]
  ##-- domainFACTORY
  #RewriteCond %{HTTP:X-Forwarded-Server}   !^sslsites\.de$ [NC]
  ##-- All-Inkl
  #RewriteCond %{HTTP:X-Forwarded-Server}   !^ssl-account\.com$ [NC]
  ##-- Strato
  #RewriteCond %{HTTP:X-Forwarded-Server}   !^www\.ssl-id\.de$ [NC]

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

  ##-- Sitemap
  RewriteRule ^sitemap(.*)\.html$ shop_content.php?coID=8 [QSA,L]

  ##----------------------------------------------------------------------------------
  ##-- When working with SEO-Urls you can decide, whether to use a colon ":" or a dash "-" symbol
  ##-- (Windows Servers might have problems with colon as delimiter!)
  ##-- Change the delimiter symbol also in file "/inc/shopstat_functions.inc.php"
  ##----------------------------------------------------------------------------------

  ##-- Use colon delimiter ":" for SEO-URLS (default setting)
  ##-- Categories (:::)
  RewriteCond %{REQUEST_URI} (.*):::([_0-9]+):([_0-9]+)\.html$
  RewriteRule (.*):::([_0-9]+):([_0-9]+)\.html$ index.php?cPath=$2&page=$3 [QSA,L]
  RewriteCond %{REQUEST_URI} (.*):::([_0-9]+)\.html$
  RewriteRule (.*):::([_0-9]+)\.html$ index.php?cPath=$2 [QSA,L]

  ##-- Products (::)
  RewriteRule (.*)::(.+)\.html$ product_info.php?products_id=$2 [QSA,L]

  ##-- Content (:_:)
  RewriteRule (.*):_:([0-9]+)\.html$ shop_content.php?coID=$2 [QSA,L]

  ##-- Manufacturers (:.:)
  RewriteCond %{REQUEST_URI} (.*):.:([_0-9]+):([_0-9]+)\.html$
  RewriteRule (.*):.:([_0-9]+):([_0-9]+)\.html$ index.php?manufacturers_id=$2&page=$3 [QSA,L]
  RewriteCond %{REQUEST_URI} (.*):.:([_0-9]+)\.html$
  RewriteRule (.*):.:([0-9]+)\.html$ index.php?manufacturers_id=$2 [QSA,L]

  ##-- Use dash delimiter "-" for SEO-URLS
  ##-- Categories (---)
  #RewriteCond %{REQUEST_URI} (.*)---([_0-9]+)-([_0-9]+)\.html$
  #RewriteRule (.*)---([_0-9]+)-([_0-9]+)\.html$ index.php?cPath=$2&page=$3 [QSA,L]
  #RewriteCond %{REQUEST_URI} (.*)---([_0-9]+)\.html$
  #RewriteRule (.*)---([_0-9]+)\.html$ index.php?cPath=$2 [QSA,L]

  ##-- Products (--)
  #RewriteRule (.*)--(.+)\.html$ product_info.php?products_id=$2 [QSA,L]

  ##-- Content (-_-)
  #RewriteRule (.*)-_-([0-9]+)\.html$ shop_content.php?coID=$2 [QSA,L]

  ##-- Manufacturers (-.-)
  #RewriteCond %{REQUEST_URI} (.*)-.-([_0-9]+)-([_0-9]+)\.html$
  #RewriteRule (.*)-.-([_0-9]+)-([_0-9]+)\.html$ index.php?manufacturers_id=$2&page=$3 [QSA,L]
  #RewriteCond %{REQUEST_URI} (.*)-.-([_0-9]+)\.html$
  #RewriteRule (.*)-.-([0-9]+)\.html$ index.php?manufacturers_id=$2 [QSA,L]
</IfModule>

# Bot semalt.com blocken
RewriteEngine on
RewriteCond %{HTTP_REFERER} semalt.com [NC]
RewriteRule .* - [F]

# Bot make-money-online blocken
RewriteEngine on
RewriteCond %{HTTP_REFERER} make-money-online.7makemoneyonline.com [NC]
RewriteCond %{HTTP_REFERER} 7makemoneyonline.com [NC]
RewriteRule .* - [F]

# Bot buttons-for-website.com blocken
RewriteEngine on
RewriteCond %{HTTP_REFERER} buttons-for-website.com [NC]
RewriteRule .* - [F]

# Bot ilovevitaly.com blocken
RewriteEngine on
 RewriteCond %{HTTP_REFERER} ^(http://)?(www\.)?.*(-|.)ilovevitaly(-|.).*$ [NC]
RewriteRule .* - [F]

order allow,deny 
deny from  188.138.89.58 
deny from  198.23.177.93
deny from 192.241.163.230
deny from 185.38.47.93
deny from .ilovevitaly.com
allow from all

04.08.2015 14:56

2 Jörg Kruse

    RewriteCond %{HTTP_HOST} ^mugs-n-cups.de/$ [NC]
    RewriteRule ^(.*)$ http://www.teeshop-mugsncups.de/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^www.mugs-n-cups.de/$ [NC]
    RewriteRule ^(.*)$ http://www.teeshop-mugsncups.de/$1 [R=301,L]

Ein Host enthält keinen Slash am Ende! der Slash gehört schon zum Pfad

Nebenbei kannst du die beiden Rules auch noch in eine zusammenfassen:

    RewriteCond %{HTTP_HOST} ^(www\.)?mugs-n-cups\.de$ [NC]
    RewriteRule ^(.*)$ http://www.teeshop-mugsncups.de/$1 [R=301,L]

04.08.2015 15:03

3 nima

Hallo Jörg,

danke dir, habe deinen code mit dem bereich in meiner .htaccess gewechselt. Immer noch das selbe Problem, Weiterleitung von www.mugs-n-cups.de zu www.teeshop-mugsncups.de geht, jedoch die Unterseiten nicht.

Ich bekomme eine Fehlermeldung von Firefox
Corrupted Content Error

The page you are trying to view cannot be shown because an error in the data transmission was detected.

The page you are trying to view cannot be shown because an error in the data transmission was detected.

    Please contact the website owners to inform them of this problem.

Kann der Fehler durch die Weiterleitung vom Hoster kommen, die ich eingerichtet habe?

05.08.2015 00:43

4 nima

Ich nochmal,

ich konnte den Fehler schonmal soweit eingrenzen und feststellen das es Probleme mit den Doppelpunkten gibt:

Link bei dem sich nichts tut
www.mugs-n-cups.de/Gruener-Tee:::2.html

Link bei dem sich etwas tut (selber Doppelpunkte entfernt)
www.mugs-n-cups.de/Gruener-Tee2.html

Beim zweiten Code ist mir noch aufgefallen, das das / zwischen .de/Gruener entfernt wird und alles nach dem / klein schreibt...

Siehe
http://www.teeshop-mugsncups.degruener-tee2.html/

grüße nima

05.08.2015 02:05

5 Jörg Kruse

Beim zweiten Code ist mir noch aufgefallen, das das / zwischen .de/Gruener entfernt wird und alles nach dem / klein schreibt...

Hast du den Slash auch in der RewriteRule entfernt? Fehl am Platz ist er nur in der RewriteCond, in welcher auf den Host geprüft wird. In der RewriteRule steht ja die komplette URL, und zu der gehört auch der Pfad inklusive Slash - so wie in meinem Code-Beispiel:

    RewriteCond %{HTTP_HOST} ^(www\.)?mugs-n-cups\.de$ [NC]
    RewriteRule ^(.*)$ http://www.teeshop-mugsncups.de/$1 [R=301,L]

Wenn der Slash in der URL fehlt, interpretiert der Browser den Abschnitt ab dem ersten Punkt wohl als Portangabe, was dann wohl zu dem "Corrupted Content Error" führt

05.08.2015 09:13

6 nima

Hi Jörg,

Ne, hab den selben code wie deinen Beispielcode in meiner .htaccess.

RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?mugs-n-cups\.de$ [NC]
    RewriteRule ^(.*)$ http://www.teeshop-mugsncups.de/$1 [R=301,L]

Gebe mal diesen Link in den Browser ein und schau was passiert www.mugs-n-cups.de/admin/start.php

Warum regt sich was in der Umleitung, wenn man aus der alten Domain, z.B.: www.mugs-n-cups.de/Aromatisierter-Gruener-Tee:::76.html die Doppelpunkte entfernt?

Was kann man noch tun??

05.08.2015 10:00

7 Jörg Kruse

Warum regt sich was in der Umleitung, wenn man aus der alten Domain, z.B.: www.mugs-n-cups.de/Aromatisierter-Gruener-Tee:::76.html die Doppelpunkte entfernt?

Weil im ersterem Fall auf www.teeshop-mugsncups.deAromatisierter-Gruener-Tee:::76.html weitergeleitet wird, wobei der Browser wegen des fehlenden Slash das "www.teeshop-mugsncups.deAromatisierter-Gruener-Tee" als Domainnamen interpretiert, und ":::76.html" als die Portangabe - letztere ist nicht nur unsinnig, sondern auch ungültig, weswegen der Browser gleich diese Fehlermeldung ausgibt. Ohne Doppelpunkte ist die Weiterleitungs-URL ohne Slash nur unsinnig, aber nicht ungültig

Ich habe die .htaccess Datei mal mit meinem Weiterleitungscode auf meinem Entwicklungssystem getestet - hier funtioniert das ganze wie gewünscht, d.h. der Slash wird nicht entfernt. www.mugs-n-cups.de/Gruener-Tee:::2.html wird z.B. weitergeleitet auf www.teeshop-mugsncups.de/Gruener-Tee:::2.html

Den alten Weiterleitungscode hast du gelöscht?

05.08.2015 11:18 | geändert: 05.08.2015 11:28

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]