Seite 53 von 53

htaccess anpassungen

Verfasst: Di 13. Mai 2008, 20:58
von nonano
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.

gelöst

Verfasst: Di 13. Mai 2008, 22:15
von nonano
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.

htaccess führt zu Fehler 500 (interner Serverfehler)

Verfasst: Mi 21. Mai 2008, 07:15
von #ayshe
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

Verfasst: Mi 21. Mai 2008, 08:03
von nonano
@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.

Verfasst: Mi 21. Mai 2008, 08:17
von #ayshe
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

Verfasst: Mo 16. Jun 2008, 15:01
von kreativsteffi
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

Re: Original AdvancedMod Rewrite 4.6.15

Verfasst: Fr 15. Mai 2009, 22:07
von a_li_ba_ba
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

Re: Original AdvancedMod Rewrite 4.6.15

Verfasst: Fr 18. Dez 2009, 12:08
von oneside
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