mod_rewrite Problem

Alles, was den Apache betrifft, kann hier besprochen werden.

mod_rewrite Problem

Postby Dirk67 » 04. April 2008 18:14

Ich habe für einen XT:Commerce Shop eine .htaccess im Einsatz, die SEO-Links machen soll...

auf dem Hosting-Server sieht dass dann so aus (und es läuft):

Code: Select all
#-- ! Comment this line, if you get an ERROR 500 !
#Options +FollowSymlinks

# http://httpd.apache.org/docs/misc/rewriteguide.html
RewriteEngine on

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

##-- Kategorien
RewriteRule (.*):::([_0-9]+)\.html$ /index.php?cPath=$2 [qsappend,L]

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

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

##-- Fehlerseiten auf die Sitemap lotsen
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



Das selbe möchte ich jetzt local auf meinem Rechner mit XAMPP machen (Win XP SP2).
hierzu habe ich das leicht modifiziert:

Code: Select all
#-- ! Comment this line, if you get an ERROR 500 !
#Options +FollowSymlinks

# http://httpd.apache.org/docs/misc/rewriteguide.html
RewriteEngine on

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

##-- Kategorien
RewriteRule (.*):::([_0-9]+)\.html$ index.php?cPath=$2 [qsappend,L]

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

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

##-- Fehlerseiten auf die Sitemap lotsen
ErrorDocument 400 /eigene_webs/b_tronix_shop/arbeitskopie_aktuell/shop/sitemap.html?error=400
ErrorDocument 401 /eigene_webs/b_tronix_shop/arbeitskopie_aktuell/shop/sitemap.html?error=401
ErrorDocument 402 /eigene_webs/b_tronix_shop/arbeitskopie_aktuell/shop/sitemap.html?error=402
ErrorDocument 403 /eigene_webs/b_tronix_shop/arbeitskopie_aktuell/shop/sitemap.html?error=403
ErrorDocument 404 /eigene_webs/b_tronix_shop/arbeitskopie_aktuell/shop/sitemap.html?error=404
ErrorDocument 500 /eigene_webs/b_tronix_shop/arbeitskopie_aktuell/shop/sitemap.html?error=500


"Fehlerseiten auf die Sitemap lotsen" geht auch.
die Rewrite-Rule für "Produkte" geht auch,
die Rewrite-Rule für "Content" geht überhaupt nicht,
die Rewrite-Rule für "Kategorien" geht bei einigen Kategorien und bei einigen nicht -> z.B.:
geht:
Kategorie-Name: "Speicher/Medien" ergibt:
http://localhost/eigene_webs/b_tronix_s ... ::101.html

geht nicht:
Kategorie-Name: "Computer" ergibt:
http://localhost/eigene_webs/b_tronix_s ... r:::1.html

error 403

im error-log ist dann zu finden:
Code: Select all
[Fri Apr 04 19:11:19 2008] [error] [client 127.0.0.1] (20024)The given path misformatted or contained invalid characters: Cannot map GET /eigene_webs/b_tronix_shop/arbeitskopie_aktuell/shop/Computer:::1.html HTTP/1.1 to file, referer: http://localhost/eigene_webs/b_tronix_shop/arbeitskopie_aktuell/shop/Speicher/Medien:::101.html


hat jemand eine Idee ?
Dirk67
 
Posts: 1
Joined: 04. April 2008 17:54

Re: mod_rewrite Problem

Postby Xantiva » 17. May 2009 14:34

Hallo zusammen,
ich habe das gleiche Problem und daher wollte ich jetzt keinen neuen Thread aufmachen.

Version: XAMPP für Windows Version 1.7.0

Eintrag in der hosts - Datei:
Code: Select all
127.0.0.2 myecb.de

Eintrag in der httpd-vhosts.conf:
Code: Select all
<VirtualHost 127.0.0.2>
    ServerName myecb.de
    DocumentRoot "C:\xampp\htdocs\eComBASE\ecombase"
</VirtualHost>

Die komplette .htaccess:
Code: Select all
# $Id: .htaccess 440 2009-03-15 16:14:56Z gunah $
#
# This is used with Apache WebServers
#
# For this to work, you must include the parameter 'Options' to
# the AllowOverride configuration
#
# Example:
#
#<Directory "/usr/local/apache/htdocs">
#   AllowOverride Options
#</Directory>
#
# 'All' with also work. (This configuration is in the
# apache/conf/httpd.conf file)
# The following makes adjustments to the SSL protocol for Internet
# Explorer browsers
<IfModule mod_setenvif.c>
  <IfDefine SSL>
    SetEnvIf User-Agent ".*MSIE.*" \
             nokeepalive ssl-unclean-shutdown \
             downgrade-1.0 force-response-1.0
  </IfDefine>
</IfModule>

# Fix certain PHP values
# (commented out by default to prevent errors occuring on certain
# servers)
#<IfModule mod_php4.c>
#  php_value session.use_trans_sid 0
#  php_value register_globals 1
#</IfModule>

#-- Call time pass reference error ?!
#php_flag  allow_call_time_pass_reference On

#-----------------------------------------
#- SEO Hartmut König
#-----------------------------------------
#-- ! Comment this line, if you get an ERROR 500 !
# Options +FollowSymlinks

# http://httpd.apache.org/docs/misc/rewriteguide.html
<IfModule mod_rewrite.c>
  RewriteEngine on

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

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

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

  ##-- Live-Shopping
  RewriteRule (.*):..:(.+)\.html$ live_shopping.php?products_id=$2 [qsappend,L]

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

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

  #myliveshopping.de
  RewriteRule myliveshopping.xml$ myliveshopping.php [qsappend,L]
</IfModule>

##-- Fehlerseiten auf die Sitemap lotsen
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


Wenn ich eine "Unterkategorie" aufrufe: http://myecb.de/Schablonieren/3D-Effekt-Schablonen:::54_64.html wird die Seite korrekt aufgerufen. Auch Produktseiten wie z. B. http://myecb.de/Schreibwaren/BuntstifteBleistifte/Radierer-KOSMO-mini-weiss::1009.html funktionieren einwandfrei.

Versuche ich nun eine Hauptkategorie oder eine der "Content-Seiten" aufzurufen, wird mir der Zugriff verweigert:
http://myecb.de/Schablonieren:::54.html
http://myecb.de/Impressum:_:4.html
Zugriff verweigert!
Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.
Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
myecb.de
05/17/09 15:28:14
Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.8


Im Error.log steht folgendes:
[Sun May 17 15:28:14 2009] [error] [client 127.0.0.2] (20024)The given path is misformatted or contained invalid characters: Cannot map GET /Impressum:_:4.html HTTP/1.1 to file, referer: http://myecb.de/Schreibwaren/BuntstifteBleistifte/Radierer-KOSMO-mini-weiss::1009.html


Ändere ich bei den Kategorien mal die drei Doppelpunkte in drei Unterstriche (in htaccess und URL) funktioniert der Aufruf. Es scheint so, als ob die Doppelpunkte stören ?!?

Im Netz habe ich viel gesucht, aber keine funktionierenden Antworten gefunden.

Ciao,
Mike
Xantiva
 
Posts: 3
Joined: 17. May 2009 13:52


Return to Apache

Who is online

Users browsing this forum: No registered users and 36 guests