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

Mod Rewrite Frage

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
darkeye
PostRank 5
PostRank 5
Beiträge: 234
Registriert: 16.05.2004, 00:21

Beitrag von darkeye » 03.02.2009, 20:01

Hallo,

ich benutze auf meiner Seite folgenden Mod_Rewrite Code in meiner htaccess:

RewriteRule ^(.*).htm$ $1.php

Jetzt möchte ich, dass sich dieser Code NUR auf Dateien des Root-Verzeichnisses und auf Dateien eines bestimmten Ordners bezieht. Wie mach ich das nun, kann mir einer helfen?

Anzeige von ABAKUS

von Anzeige von ABAKUS »


Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

chrizz
PostRank 10
PostRank 10
Beiträge: 3044
Registriert: 05.07.2006, 10:37
Wohnort: Berlin

Beitrag von chrizz » 03.02.2009, 21:48

du legst ins Root diese o.g. htaccess. Die Ordner, bei denen das nicht so gehandhabt werden soll, fütterst du mit einer htaccess, inder RewriteEngine OFf steht... das sollte eigentlich klappen...

darkeye
PostRank 5
PostRank 5
Beiträge: 234
Registriert: 16.05.2004, 00:21

Beitrag von darkeye » 03.02.2009, 22:27

Hallo, danke für die ANtwort. Aber das klappt leider nicht, da ich nämlich für den speziellen Ordner eine htaccess mit Mod_Rewrite benutze. Um genauer zu sein: Ich habe ein Forum im Ordner "/forum/" im Root habe ich daher folgende htacess:

Code: Alles auswählen

RewriteEngine on
#if forum is in /forum/ replace with RewriteBase /forum/
RewriteBase /forum/

RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*)-s([0-9]*).html viewtopic.php?f=$2&t=$4&start=$5&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*).html viewtopic.php?f=$2&t=$4&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/index-s([0-9]*).html viewforum.php?f=$2&start=$3&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/ viewforum.php?f=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*) viewforum.php?f=$2&%{QUERY_STRING} [L]

Jetzt möchte ich aber noch zusätzlich folgenden Code benutzen, der für ALLE andren Dateien gilt, AUSSER für das Forum:

Code: Alles auswählen

RewriteRule ^(.*).htm$ $1.php 

Wie mach ich da? Hab schon einiges ausprobiert, aber bin kein mod_rewrite Profi...

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.


ins0
PostRank 4
PostRank 4
Beiträge: 128
Registriert: 01.09.2008, 18:29

Beitrag von ins0 » 03.02.2009, 22:34

Zum auschließen von Ordnern der Rewirte Regel in die Htaccess:

Code: Alles auswählen

RewriteCond %{REQUEST_URI} !^/(1ordner|2ordner|3ordner)
RewriteRule ^(.*).htm$ $1.php 
grüße ins0

darkeye
PostRank 5
PostRank 5
Beiträge: 234
Registriert: 16.05.2004, 00:21

Beitrag von darkeye » 04.02.2009, 12:25

Hmm, wie muss denn dann die htaccess aussehen? Also dieser Code hier klappt NICHT:

Code: Alles auswählen

RewriteEngine on
#if forum is in /forum/ replace with RewriteBase /forum/
RewriteBase /forum/

RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*)-s([0-9]*).html viewtopic.php?f=$2&t=$4&start=$5&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*).html viewtopic.php?f=$2&t=$4&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/index-s([0-9]*).html viewforum.php?f=$2&start=$3&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/ viewforum.php?f=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*) viewforum.php?f=$2&%{QUERY_STRING} [L]



RewriteCond %{REQUEST_URL} !^/(forum)
RewriteRule ^(.*).htm$ $1.php 

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

Beitrag von Mork vom Ork » 04.02.2009, 15:01

darkeye hat geschrieben:RewriteRule ^(.*).htm$ $1.php
Das ist nicht sinnvoll. Wenn du sämtliche htm-Dateien mittels PHP verwursten willst, dann weise den Apache direkt an, dies zu tun, anstatt erst die URL zu ändern und ihn anzuweisen, PHP auf die geänderte URL anzuwenden. Wenn du dann auch noch anfängst, da Ausnahmen reinzupfriemeln, geht das völlig in die Richtung Ja-aber-wenn-vielleicht-dann-doch-oder-auch-nicht.

Füge in die oberste .htaccess die Zeile

AddHandler application/x-httpd-php htm

ein. Das ist der vorgesehene Weg für diese Aufgabe, RewriteRule & Co sind dafür restlos fehl am Platze.

darkeye
PostRank 5
PostRank 5
Beiträge: 234
Registriert: 16.05.2004, 00:21

Beitrag von darkeye » 04.02.2009, 15:11

Mork vom Ork hat geschrieben:Füge in die oberste .htaccess die Zeile

AddHandler application/x-httpd-php htm

ein.
Habe ich gemacht. Nun sieht die htaccess so aus:

Code: Alles auswählen

AddHandler application/x-httpd-php htm

RewriteEngine on
#if forum is in /forum/ replace with RewriteBase /forum/
RewriteBase /forum/

RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*)-s([0-9]*).html viewtopic.php?f=$2&t=$4&start=$5&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*).html viewtopic.php?f=$2&t=$4&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/index-s([0-9]*).html viewforum.php?f=$2&start=$3&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/ viewforum.php?f=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*) viewforum.php?f=$2&%{QUERY_STRING} [L]

ErrorDocument 404 http://www.chaoskatzen.de/forum


Es hat sich aber immer noch nix geändert. Kannst ja mal selbst gucken unter chaoskatzen.de

Das Forum klappt einwandfrei, nur die Menülinks auf der Hauptseite klappen nicht.

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

Beitrag von Mork vom Ork » 04.02.2009, 15:51

darkeye hat geschrieben:Habe ich gemacht. […] Es hat sich aber immer noch nix geändert. Kannst ja mal selbst gucken unter chaoskatzen.de
Dein Problem ist nicht, dass da kein PHP-Code ausgeführt würde, sondern dass sämtliche URLs mit Ausnahme von /krankheiten auf das Board umgeleitet werden. Rufe ich /haltung/erziehung.html auf, lande ich unter /forum/, rufe ich /erstekatze/vorbereitung.html auf, lande ich unter /forum/ usw.

Deine .htaccess ist an zwei bzw. drei Stellen falsch:
RewriteEngine on
#if forum is in /forum/ replace with RewriteBase /forum/
RewriteBase /forum/
RewriteBase gibt den Pfad zur .htaccess an, nichts anderes; liegt diese .htaccess unter /.htaccess, gehört da RewriteBase / rein.

Davon abgesehen gehört das gesamte Rewrite-Gedöns, dass du da hast, nicht in /.htaccess, sondern in /forum/.htaccess - und da wäre dann auch RewriteBase /forum/ richtig.
Das ist ganz großer Bockmist.

Erstens darfst du Besucher gerne darüber informieren, dass das, was sie aufgerufen haben, bei dir nicht existiert. Das bedeutet ja nicht, dass du ihnen bei dieser Fehlermeldung keine weitere Hilfestellung geben dürftest. Aber sie einfach kommentarlos ins Board zu kippen, ist schlichtweg unklug.
Wie unklug das ist, erlebst du möglicherweise gerade selbst: Anstatt sofort zu sehen, dass die statischen Seiten beinahe alle nicht erreichbar sind, landest du jedesmal im Board und wunderst dich.

Zweitens unterdrückst du mit der Angabe einer absoluten URL auch protokollseitig jedwede Fehlermeldung an den Client. Wenn Herr Googlebot vorbeikommt und nach blafaselgnuwutz fragt, dann antwortest du ihm „Ja, habe ich, findest du unter /forum“. Ist das richtig? Nein.

Tu' dir also selbst einen Gefallen, schreibe eine ordentliche Fehlerseite und setze sie mit ErrorDocument 404 /fehler404.html ein. Aber nicht so wie jetzt.

darkeye
PostRank 5
PostRank 5
Beiträge: 234
Registriert: 16.05.2004, 00:21

Beitrag von darkeye » 04.02.2009, 16:10

Danke für deine Meinungen, aber so klappt das nicht.

Wenn ich folgenden Code in die /forum/.htaccess einfüge,

Code: Alles auswählen

RewriteEngine on
#if forum is in /forum/ replace with RewriteBase /forum/
RewriteBase /forum/

RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*)-s([0-9]*).html viewtopic.php?f=$2&t=$4&start=$5&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*).html viewtopic.php?f=$2&t=$4&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/index-s([0-9]*).html viewforum.php?f=$2&start=$3&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*)/ viewforum.php?f=$2&%{QUERY_STRING} [L]
RewriteRule ^(.*)-f([0-9]*) viewforum.php?f=$2&%{QUERY_STRING} [L]
... kommen wieder nur 404 Meldungen, diesmal sogar im Forum.

Und auch wenn folgenden Code in die /.htaccess eingebe:

Code: Alles auswählen

AddHandler application/x-httpd-php htm
... kommen auch 404 Meldungen wenn man auf die Menü-Links klickt.


Auf der Hauptseite arbeite ich mit php und include Dateien, deshalb wende ich ja "RewriteRule ^(.*).htm$ $1.php" an.

Man man man, ich komm einfach nicht weiter :(

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

Beitrag von Mork vom Ork » 04.02.2009, 17:11

darkeye hat geschrieben:Wenn ich folgenden Code in die /forum/.htaccess einfüge,

Code: Alles auswählen

RewriteEngine on
#if forum is in /forum/ replace with RewriteBase /forum/
RewriteBase /forum/

RewriteRule ^(.*)-f([0-9]*)/(.*)-t([0-9]*)-s([0-9]*).html viewtopic.php?f=$2&t=$4&start=$5&%{QUERY_STRING} [L]
[..]
... kommen wieder nur 404-Meldungen, diesmal sogar im Forum.
Interessant. Was steckt eigentlich in /forum2/?
Und auch wenn folgenden Code in die /.htaccess eingebe:

Code: Alles auswählen

AddHandler application/x-httpd-php htm
... kommen auch 404-Meldungen wenn man auf die Menü-Links klickt.
1. Es wäre schön, wenn du erstmal die ErrorDocument-Zeile entsorgen würdest. Es ist nervig, beim Probieren immer wieder dieselbe URL eintippen zu müssen, weil man ständig in /forum landet.

2. Wenn du mit AddHandler arbeitest, müssen die Dateien auch die jeweilige Endung haben. Ich hatte deine Ausführungen falsch verstanden und dachte, du wolltest .htm-Dateien durch PHP jagen.

3. Deine URLs enden auf .html, nicht wie von dir in deinem RewriteRule-Versuch angegeben, auf .htm. Entsprechend müsste es AddHandler application/x-httpd-php html lauten und, gemäß 2., die Dateien zB von /haltung/erziehung.php in /haltung/erziehung.html umbenannt werden.
Am einfachsten wäre es natürlich, du würdest sie direkt mit /haltung/erziehung.php aufrufen, denn einen Vorteil hast du von der Endung .html nicht (daher auch mein Missverständnis unter 2).

darkeye
PostRank 5
PostRank 5
Beiträge: 234
Registriert: 16.05.2004, 00:21

Beitrag von darkeye » 04.02.2009, 17:55

Coooool, danke, hat geklappt! :D

Sefron
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 11.02.2009, 09:40

Beitrag von Sefron » 11.02.2009, 19:22

Welche Sicherheitsrisiken birgt die Aktivierung von ModRewrite ganz genau?


Freundlichen Gruss

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

Beitrag von Mork vom Ork » 11.02.2009, 20:58

Sefron hat geschrieben:Welche Sicherheitsrisiken birgt die Aktivierung von ModRewrite ganz genau?
Welche Risiken existieren, hängt davon ab, welche Risiken du einbaust und wie geschickt du dich dabei anstellst. mod_rewrite macht alleine exakt gar nichts, jegliche Funktion muss von dir programmiert werden (wenn man das erstellen von Mustern und Regeln als Programmieren bezeichnen möchte).

Sefron
PostRank 1
PostRank 1
Beiträge: 7
Registriert: 11.02.2009, 09:40

Beitrag von Sefron » 12.02.2009, 13:22

Okay, dann frag ich nun so:
"In welchen programmiertechnischen Bereiche muss ich aufpassen, dass ich keine Sicherheitslücken öffne, weil ich nun ModRewrite aktiviert habe?"

Freundlichen Gruss,

Sefron

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

Beitrag von Mork vom Ork » 12.02.2009, 14:02

Sefron hat geschrieben:Okay, dann frag ich nun so:
"In welchen programmiertechnischen Bereiche muss ich aufpassen, dass ich keine Sicherheitslücken öffne, weil ich nun ModRewrite aktiviert habe?"
Das lässt sich so pauschal wirklich nicht sagen. Auf die Frage, was einem mit einem Auto alles Schlimmes passieren kann, dürftest du letztlich auch keine andere Antwort bekommen als „Das hängt davon ab, wie du fährst, wohin du fährst, wann du fährst“. Das Aufzählen sämtlicher Möglichkeiten, irgendwo gegen-, rein- oder drüberzufahren, bringt dich nicht weiter, weil doch immer irgendwas fehlen wird. Einziger Rat: Aufpassen, nachdenken, was man tut, und nicht blindlings drauflosbrettern.

Aber vielleicht beruhigt dich ja die Einschätzung, dass zu den wahrscheinlichsten Katastrophen im Falle mod_rewrite das Erzeugen einer Endlosschleife gehören dürfte - und die werden in der Regel durch mod_rewrite oder den Browser irgendwo zwischen der zwanzigsten und hundertsten Umdrehung abgewürgt.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag