Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Mal wieder eine .htaccess Frage

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
cz-wellmed
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 24.09.2008, 18:17

Beitrag von cz-wellmed » 24.09.2008, 19:08

Hallo,

habe wie viele hier eine Frage zu der .htaccess-Datei in Verbindung mit Joomla. Wegen Doppelten Content habe ich http:// zu https://www. weitergeleitet. Das hat auch super funktioniert.

Code siehe hier:

Code: Alles auswählen

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]

Dann wollte ich die Startseite (www.domain.de/index.php) zu www.domain.de/ per 301 weiterleiten. Da fing das Problem an! Alles was ich versuchte klappte irgendwie nicht. Wie kann ich das machen?

Hier mal der Rest meiner htaccess:

Code: Alles auswählen

########## Begin - Joomla! core SEF Section
############# Use this section if using ONLY Joomla! core SEF
## ALL (RewriteCond) lines in this section are only required if you actually
## have directories named 'content' or 'component' on your server
## If you do not have directories with these names, comment them out.
#
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
#RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
#RewriteRule ^(content/|component/) index.php
#
########## End - Joomla! core SEF Section

########## Begin - 3rd Party SEF Section
############# Use this section if you are using a 3rd party (Non Joomla! core) SEF extension - e.g. OpenSEF, 

404_SEF, 404SEFx, SEF Advance, etc
#
RewriteCond %{REQUEST_URI} ^(/component/option,com) [NC,OR] ##optional - see notes##
RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php
#
########## End - 3rd Party SEF Section

########## Begin - Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode crap to send via URL
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %&#123;QUERY_STRING&#125; &#40;\<|%3C&#41;.*script.*&#40;\>|%3E&#41; &#91;NC,OR&#93;
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %&#123;QUERY_STRING&#125; GLOBALS&#40;=|\&#91;|\%&#91;0-9A-Z&#93;&#123;0,2&#125;&#41; &#91;OR&#93;
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %&#123;QUERY_STRING&#125; _REQUEST&#40;=|\&#91;|\%&#91;0-9A-Z&#93;&#123;0,2&#125;&#41;
# Send all blocked request to homepage with 403 Forbidden error!
RewriteRule ^&#40;.*&#41;$ index.php &#91;F,L&#93;
#
########## End - Rewrite rules to block out some common exploits

Danke ...

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 24.09.2008, 19:36

cz-wellmed hat geschrieben:Dann wollte ich die Startseite (www.domain.de/index.php) zu www.domain.de/ per 301 weiterleiten. Da fing das Problem an! Alles was ich versuchte klappte irgendwie nicht.
Direkt nach dem www-Kram einfügen:

RewriteCond %{THE_REQUEST} " (/(.+/)?)index\.[a-z0-9.]+ "
RewriteRule index\. %1 [R=301,L]

cz-wellmed
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 24.09.2008, 18:17

Beitrag von cz-wellmed » 06.10.2008, 10:45

habe diesen Code eingefügt.

Code: Alles auswählen

RewriteCond %&#123;THE_REQUEST&#125; " &#40;/&#40;.+/&#41;?&#41;index\.&#91;a-z0-9.&#93;+ "
RewriteRule index\. %1 &#91;R=301,L&#93;
leider ohne Erfolg. Habe ich etwas falsch gemacht? Des weiteren habe ich dann folgendes probiert:


RewriteRule /index.php https://www.domain.de [R=301,L]


auch ohne Erfolg. Es kommt lediglich ein Umleitungsfehler. Hmmm???

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


cz-wellmed
PostRank 1
PostRank 1
Beiträge: 3
Registriert: 24.09.2008, 18:17

Beitrag von cz-wellmed » 06.10.2008, 11:34

Liegt wohl eher an sh404sef .... Eine andere Seite (nicht .index.php) konnte ich erfolgreich weiterleiten.

Warum geht die index.php aber nicht? Auch bei 404sef konnte ich diesbezüglich nichts erreichern. Hat jemand Vorschläge??? Danke ...

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 06.10.2008, 17:27

cz-wellmed hat geschrieben:

Code: Alles auswählen

RewriteCond %&#123;THE_REQUEST&#125; " &#40;/&#40;.+/&#41;?&#41;index\.&#91;a-z0-9.&#93;+ "
RewriteRule index\. %1 &#91;R=301,L&#93;
leider ohne Erfolg. Habe ich etwas falsch gemacht?
Was heißt „ohne Erfolg“, reagiert gar nicht, gibt's eine Fehlermeldung?
RewriteRule /index.php https://www.domain.de [R=301,L]
auch ohne Erfolg. Es kommt lediglich ein Umleitungsfehler. Hmmm???
Das landet in einer Endlosschleife, da der Aufruf der URL / intern frühzeitig durch den Pfad /index.php ersetzt wird, denn der Apache möchte ja wissen, welche Datei er schlussendlich als Verzeichnisindex ausliefern soll.

Rufst du also example.com/ auf, sucht der Apache im dazugehörigen Verzeichnis nach einer index.-Datei und trägt deren Namen in den „Laufzettel“ ein, mit dem er die Anfrage abarbeitet. Der Laufzettel wird von einer Stufe (bzw. Modul) zur nächsten weitergereicht und normalerweise würde irgendwo am Ende ein Modul, das sich zuständig fühlt, die Datei index.xy öffnen und zum Browser schicken.
In diesem Fall kommt davor aber noch mod_rewrite an die Reihe, sieht /index.php auf dem Zettel stehen und leitet wunschgemäß nach example.com/ weiter - womit der Kreis von vorne beginnt.

Aus diesem Grund steht in meinem Beispiel oben vor der RewriteRule-Zeile, die deinem Versuch ja beinahe identisch ist, noch eine RewriteCond-Zeile, die die Variable THE_REQUEST abfragt. In dieser Variablen steht die originale, unveränderte Anfrage vom Browser, das heißt, nur wenn in der tatsächlichen Browser-Anfrage index.xy auftaucht, wird auch weitergeleitet. Soweit jedenfalls die Theorie.

1. Wo hast du den Code eingefügt, ganz, ganz, ganz oben, direkt nach den vier Zeilen, mit denen du die www-Umleitung startest?

2. Setze ein Nummernzeichen vor die RewriteCond-Zeile, du kommentierst sie damit aus. In der Folge müsstest du wieder die Umleitungsschleife bekommen, so dass schon mal klar wäre, dass die RewriteRule-Zeile funktioniert.

3. Falls 1. und 2. wie beschrieben verlaufen, liegt es an der RewriteCond-Zeile. Du müsstest dich an den Fehler rantasten, denn die zwei Zeilen sind hier im Einsatz und machen grundsätzlich definitiv, was sie sollen.
Was passiert beispielsweise bei folgendem:

RewriteCond %{THE_REQUEST} "index"
RewriteRule index\. https://example.com/bla [R=302,L]

Müsste theoretisch beim Aufruf von /index.irgendwas nach example.com/bla weiterleiten.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag