Original AdvancedMod Rewrite 4.6.15

nonano
Beiträge: 43
Registriert: Do 13. Apr 2006, 17:45
Kontaktdaten:

htaccess anpassungen

Beitrag von nonano » Di 13. Mai 2008, 20:58

Hallo zusammen,

Ich frickel gerade an der htaccess-datei herum, und komme hier irgendwie ins stolpern.

Ziel:
wenn abschließende slashes nicht vorhanden, soll ein 301 Redirect stattfinden, zur gleichen Adresse mit Slash. Das soll den Eindruck von Doubled-Content vermeiden. (Laut meinen SEO-Unterlagen soll das relevant sein ...)

Soweit ja kein Problem:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !/$ [NC]
RewriteRule (.*) http://www.domain.com%{REQUEST_URI}/ [R=301,L]
Nur in Verbindung mit den anderen Rewrite-Rules führt das zu einer Endlosschleife ...

Die Frage ist also; wie bekomme ich das hin, dass die oben genannte Regel nur dann angewendet wird, wenn zuvor kein Redirect stattgefunden hat? Gibts sowas wie refrerrer in Mod_rewrite?

Oder hat jemand eine andere Idee? Ansonsten läuft meine angepasste htaccess genauso, wie ich mir das vorstelle. Hier das komplette Teil:

Code: Alles auswählen

#AddHandler php-cgi .php .php4


# Während der Entwicklung darf nur ich gucken:
order deny,allow
deny from all
allow from XX.XX.XXX.XXX # meine IP

<IfModule mod_rewrite.c>

RewriteEngine on


RewriteCond %{REQUEST_URI} !/$ [NC]
RewriteRule (.*) http://www.domain.com%{REQUEST_URI}/ [R=301,L]

RewriteCond %{HTTP_HOST} !^www.domain.com [NC]
RewriteRule (.*) http://www.domain.com%{REQUEST_URI} [R=301,L]

# achtung bitte basisverzeichnis anpassen!

RewriteBase /cmr-415/cms


# ausnahmen für verzeichnisse der mod_rewrite regel:

# verzeichnisse ausschlieÃ&#159;en

RewriteRule ^usage/.*$ - [L]



# das kann beliebig erweitert werden:

RewriteRule ^de/error/.*$ - [L]

# (...)


# detect url injection in query string
RewriteCond %{REQUEST_URI} !^.*attackmsg.php.* [NC]
RewriteCond %{QUERY_STRING} ^.*ftp://.*$  [NC,OR]
RewriteCond %{QUERY_STRING} ^.*http[s]*://.*$ [NC]
RewriteRule ^(.*)$ attackmsg.php?attack_request=/$1 [L,NS,QSA] 


# dank an panti aus dem contenido-forum fuer 

# rewrite rule ohne abschlieszenden slash in der url



RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6&parts[]=$7&parts[]=$8&artname=$9 [QSA,L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6&parts[]=$7&parts[]=$8 [QSA,L]

# RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6&parts[]=$7&parts[]=$8 [QSA,L]



RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6&parts[]=$7&artname=$8 [QSA,L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6&parts[]=$7 [QSA,L]

# RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6&parts[]=$7 [QSA,L]



RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6&artname=$7 [QSA,L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6 [QSA,L]

# RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&parts[]=$6 [QSA,L]



RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5&artname=$6 [QSA,L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5 [QSA,L]

# RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&parts[]=$5 [QSA,L]



RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4&artname=$5 [QSA,L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4 [QSA,L]

# RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&parts[]=$4 [QSA,L]



RewriteRule ^([^/]+)/([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3&artname=$4 [QSA,L]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3 [QSA,L]

# RewriteRule ^([^/]+)/([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2&parts[]=$3 [QSA,L]



RewriteRule ^([^/]+)/([^/]+)/(.*).html$ front_content.php?parts[]=$1&parts[]=$2&artname=$3 [QSA,L]

RewriteRule ^([^/]+)/([^/]+)/$ front_content.php?parts[]=$1&parts[]=$2 [QSA,L]

# RewriteRule ^([^/]+)/([^/\.]+)$ front_content.php?parts[]=$1&parts[]=$2 [QSA,L]



RewriteRule ^([^/]+)/(.*).html$ front_content.php?parts[]=$1&artname=$2 [QSA,L]

RewriteRule ^([^/]+)/$ front_content.php?parts[]=$1 [QSA,L]

# RewriteRule ^([^/\.]+)$ front_content.php?parts[]=$1 [QSA,L]



RewriteRule ^(.*).html$ front_content.php?artname=$1 [QSA,L]

RewriteRule ^$ front_content.php [QSA,L]


</IfModule>

Wie man sieht, habe ich jeweils die dritte Regel auskommentiert -- so kommt 404 wenn man den Slash weglässt. Vielleicht muss ich lieber hier meine Änderungen vornehmen? -- Wäre dankbar für Hinweise.

nonano
Beiträge: 43
Registriert: Do 13. Apr 2006, 17:45
Kontaktdaten:

gelöst

Beitrag von nonano » Di 13. Mai 2008, 22:15

So, jetzt hab ichs.

Am Ende, vor den letzten beiden Bedingungen eine Zeile eingefügt:

Code: Alles auswählen

####  slash am ende  ####
RewriteRule ^([^\.])*([^/])$ http://www.domain.com%{REQUEST_URI}/ [R=301,L]
Das heisst, am schluss siehts dann so aus:

Code: Alles auswählen

####  slash am ende  ####
RewriteRule ^([^\.])*([^/])$ http://www.domain.com%{REQUEST_URI}/ [R=301,L]

RewriteRule ^(.*).html$ front_content.php?artname=$1 [QSA,L]
RewriteRule ^$ front_content.php [QSA,L]

</IfModule>
domain.com ist natürlich zu ersetzen.

-- edit: ich habe natürlich ein URL-Muster ohne Punkte -- deshalb kann ich davon ausgehen, dass der Punkt nur dann auftaucht, wenn bereits ein Verweis zur .php, bzw .html stattgefunden hat.

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

htaccess führt zu Fehler 500 (interner Serverfehler)

Beitrag von #ayshe » Mi 21. Mai 2008, 07:15

Hallo,

ich hatte zwar die Mod-Rewrite-Version (4.6.15) schon problemlos laufen, aber nach dem Umzug auf einen anderen Server erhalte ich, sowie die htaccess aktiviert ist, einen Internal Servererror (Fehler 500).

Woran kann das liegen? Ich meine mich vage zu erinnern, dass dieses Problem schon mal angesprochen worden ist, aber ich finde es nicht über die Suche.

Vielen Dank im Voraus für Tipps,
Ayshe

nonano
Beiträge: 43
Registriert: Do 13. Apr 2006, 17:45
Kontaktdaten:

Beitrag von nonano » Mi 21. Mai 2008, 08:03

@ayshe,

hast du dein Basisverzeichnis angepasst? Serverpfad?

Als ich noch bei 1&1 war, fiel mir bei denen auch eine Eigenheit auf, die (bei der damaligen Version von Steses mr) nicht berücksichtigt war -- man musste noch irgendwas manuell anpassen ...
Ah, hier ist der Beitrag ja.

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe » Mi 21. Mai 2008, 08:17

Hallo nonano,

vielen Dank für deinen Hinweis! Leider ist es das nicht. Der Pfad ist relativ angelegt und er stimmt auch ;-)
(ist nämlich in meinem Fall das Wurzelverzeichnis, deshalb '/')

Ich habe mal ausprobiert, was mit einer vereinfachten htaccess auf dem Server passiert:

Code: Alles auswählen

DirectoryIndex front_content.php
RewriteEngine on
Ergebnis: Fehler 500
Dito wenn ich die zweite Zeile auskommentiere. Ergo liest wohl aus irgendeinem Grund der Server die htaccess nicht ein. Nur warum??
Hat noch jemand ne Idee?

Viele Grüße,
Ayshe

kreativsteffi
Beiträge: 40
Registriert: Di 13. Mär 2007, 14:21
Wohnort: Jena
Kontaktdaten:

Beitrag von kreativsteffi » Mo 16. Jun 2008, 15:01

Hey zusammen,

hat noch irgendwer das Bundle als Download vorliegen? Der genannte Download-Link auf der 1. Seite scheint tot zu sein.

Würde mich über eine Antwort sehr freuen.
Lg Steffi

a_li_ba_ba
Beiträge: 3
Registriert: Fr 15. Mai 2009, 22:01
Kontaktdaten:

Re: Original AdvancedMod Rewrite 4.6.15

Beitrag von a_li_ba_ba » Fr 15. Mai 2009, 22:07

keine ahnung - ich kenne das paket in dem thread nicht - das wurde von einem anderen forenteilnehmer aus meiner 4.5.3er version in die 4.6er implementiert und da ich in der 4.6er sehr viel ändern musste, garantiere ich für die version für nichts. effektiv kann es u.U. daran liegen, dass a) die tabelle art_lang nicht korrekt mit dem feld urlname ausgestattet wurde, das urlname feld nach dem setup mit der datei modrewrite_dbinstaller.php nicht gefüllt wurde etc ... aber alles weitere zu dem paket in diesem thread

oneside
Beiträge: 29
Registriert: Di 20. Mär 2007, 12:04
Kontaktdaten:

Re: Original AdvancedMod Rewrite 4.6.15

Beitrag von oneside » Fr 18. Dez 2009, 12:08

Kann es sein, dass die Contenido Suchfunktion (Frontend) mit dem Modul nicht mehr funktioniert?

Die URLS der gefunden Seiten werden bei mir auf der Trefferseite so ausgegeben, dass der Link nicht funktioniert.

Gruß
Oneside

Gesperrt