Aufbau .htaccess-Datei

jochri

Aktives Mitglied
9. Januar 2012
14
0
Hallo, wir sind gerade mit unserem Shopumzug auf den JTL Shop in vollem Gange, jetzt habe ich noch eine kurze Frage zum Aufbau der .htaccess Datei.
Die Standart .htaccess sieht ja so aus:


PHP:
<ifModule mod_deflate.c>
   <FilesMatch "\\.(js|css|html|htm|php|xml)$">
      SetOutputFilter DEFLATE
   </FilesMatch>
</ifModule>

<ifModule mod_headers.c>
   Header unset ETag
   FileETag None

   <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf|jpe)$">
      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=216000, 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>

<IfModule mod_rewrite.c>
   RewriteEngine on

   #REWRITE ANPASSUNG 1 (REWRITEBASE)
   #Wenn Ihr Shop in einem Unterverzeichnis (also z.B. meinedomain.de/meinverzeichnis) installiert ist, so kommentieren Sie die kommende Zeile aus und passen Sie den Verzeichnisnamen an
   #RewriteBase /jtlshop3

   #REWRITE ANPASSUNG 2 (auf www.meinedomain.de umleiten)
   #Ihr Shop sollte nicht unter www.meinedomain.de und nur meinedomain.de erreichbar sein, siehe: http://wiki.jtl-software.de/index.php?title=JTL-Shop3-Neuinstallation#4._Einrichtung_einer_Domainweiterleitung
   RewriteCond %{HTTP_HOST} ^domain.de
   RewriteRule ^(.*)$ http://www.domain.de/$1 [r=301,L]

   #Regeln für das Rewrite der URLs von JTL-Shop3
   #Ändern Sie an diesen Zeilen nichts!
   RewriteRule ^((urllist|sitemap_).*\.(xml|txt)(\.gz)?)$ includes/sitemap.php?datei=$1 [L]
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule !\. index.php [L]</IfModule>

Jetzt habe ich aber noch eine ganze Menge weiterer Weiterleitungen in diesem Stil:

PHP:
RewriteCond %{QUERY_STRING} ^shop=shop&SessionId=&a=article&ProdNr=121063&t=27&c=174&p=74,2,3$
RewriteRule ^Artikelname$  /Artikelname? [R=301,L]

iese habe ich in der .htacces vor den schleißenden </IfModule> -Tag gesetzt.

Auf dem Testshop liefen die Weiterleitungen perfekt, die Umleitung von shopname.de auf www.shopname.de jedoch nicht. Jetzt, im "scharfen" aktiven Shopsystem läufts gerade andersherum, die Weiterleitung auf www.shopname.de funktioniert perfekt, die anderen Weiterleitungen bleiben aber wirkungslos....

Jetzt ist meine Frage, wo genau in der .htaccess ich die Weiterleitungen einbauen muss und wie die Prioritäten sind. Müssen die vor diesen Block oder danach:
PHP:
RewriteRule ^((urllist|sitemap_).*\.(xml|txt)(\.gz)?)$ includes/sitemap.php?datei=$1 [L]
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule !\. index.php [L]</IfModule>

Könnt ihr Euch das seltsame, wechselnde Verhalten erklären? Danke für Eure Tipps;)
 

MBesancon

Administrator
Mitarbeiter
1. Oktober 2010
2.056
188
Erkelenz
AW: Aufbau .htaccess-Datei

Wenn in deiner .htaccess-Datei eine Rewrite-Anweisung mit "[L]" abschließt wird nach dessen Ausführung keine weitere Regel ausgeführt. Wenn also die Umschreibung von "nicht www." auf "mit www." ausgeführt werden die folgenden Regeln nicht mehr ausgeführt. Möglicherweise liegt es daran.
 

jochri

Aktives Mitglied
9. Januar 2012
14
0
AW: Aufbau .htaccess-Datei

Aber dann dürfte doch danach folgende:

RewriteRule ^((urllist|sitemap_).*.(xml|txt)(.gz)?)$ includes/sitemap.php?datei=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !. index.php [L]</IfModule>

auch nicht mehr ausgeführt werden?
Extrem seltsam ist, dass einzelne Weiterleitungen funktionieren...