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

slash hinter Datei Endung führt zu unerwünschten Ergebnis

Mehrere Domains, Domain-Umzug, neue Dateinamen, 301/302
Neues Thema Antworten
Al-Pi
PostRank 1
PostRank 1
Beiträge: 13
Registriert: 05.08.2010, 07:50

Beitrag von Al-Pi » 30.12.2012, 13:16

Hallo zusammen,

seit Wochen bin auf der Suche nach einer Lösung meines Problems bin aber leider nicht fündig geworden, vielleicht kann mir einer weiterhelfen...
Die Ursache des Problems war, dass man meine php Dokumente auch mit einer slash am ende aufrufen konnte, es führte dazu dass das der Inhalt ohne css Deklaration angezeigt wurde.

z.B
example.com/index.php [erwünschtes Ergebnis]
example.com/index.php/ [unerwünschtes Ergebnis]

mit folgendem Code im htaccess Root Verzeichnis konnte ich das Problem beheben.

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.+)(.php|.html)/$ /$1$2 [R=301,L]

doch wenn hinter der slash weitere Zeichen folgen hift der Code nicht weiter, leider ist mir das sehr spät aufgefallen und Google hat fast alle meine Seiten auf dieser art (ohne css) indexiert.

beispiel:
https://www.allaturkaa.de/forum/index.php?page=Index [erwünschtes Ergebnis]
https://www.allaturkaa.de/forum/index.p ... page=Index [unerwünschtes Ergebnis]

google suche
https://www.google.de/#hl=de&tbo=d&scli ... 32&bih=903[/url]

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.


Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 30.12.2012, 15:14

Da bin ich mir gerade nicht so sicher, doch wenn Du da einen Punkt in (.+) notierst, so können ja alle beliebigen Zeichen vor (.php|.html) kommen und dadurch wird dann so ein ungewolltes Ergebnis begünstigt. Wollte mir heute keine Testumgebung mehr einrichten, doch so in etwa könnte ich mir das erst einmal vorstellen, um keine weiteren Dopplungen zu erzeugen:

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9/]+)(\.php|\.html){1}/$ /$1$2 [R=301,L]
Also nur Buchstaben, Ziffern und / aber keinen Punkt vor (\.php|\.html) akzeptieren und (\.php|\.html) muss genau {1} mal vorkommen. Oder {0,1} darf 0 bis 1 mal vorkommen, wäre auch möglich. Ein Punkt muss außerhalb von [Zeichenklassen] mit \ maskiert werden, sonst steht der auch wieder für ein beliebiges Zeichen.

Die Frage ist jetzt aber, wie bekommst Du die bereits vorhandenen Ungetüme wieder aus den Serps?

Damit nicht grundsätzlich ein / hinter URL angehängt wird, lässt sich das auch mit

Code: Alles auswählen

RewriteEngine on 
DirectorySlash Off
unterbinden und eventuell auch bei den Einstellungen von Deinem Forum, nur von letzteren habe ich keine Ahnung.

Al-Pi
PostRank 1
PostRank 1
Beiträge: 13
Registriert: 05.08.2010, 07:50

Beitrag von Al-Pi » 13.01.2013, 10:50

hallo Melegrian,

erstmal danke für dein Antwort und sorry für die verspätete feedback (bin heute frisch vom Urlaub zurück)

ich habe eben das codestück gegen deine ausgetauscht, doch leider keine Änderung bemerkt, man kann weiterhin urls mit Slash am Documentendung aufrufen
allaturkaa.de/forum/index.php/index.php?page=Portal

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 13.01.2013, 14:43

Dann gehe über Ausschluss. Die zusätzliche Zeile sollte nun dafür sorgen, dass keine URL mehr ausgelöst wird, bei der zweimal index im Pfad enthalten ist. Die nächsten beiden Zeilen sollten Zugriffe von URLs eliminieren, in den zweimal index vorkommt. Falls das nicht klappt, dann ist etwas anderes faul. Cache/Temps muss zwischen zwei Tests gelöscht werden, da sich sonst der Browser die letzte gelungene Verbindung reinzieht, bzw. das ladet, was er für das Produkt der letzten Verbindung hält.

Code: Alles auswählen

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^.*index.*index.*$
RewriteRule ^([a-zA-Z0-9/]+)(\.php|\.html){1}/$ /$1$2 [R=301,L]
RewriteCond %{REQUEST_URI} ^.*index.*index.*$ 
RewriteRule .* - [F,NS,L]
Statt - [F,NS,L] könnte auch eine Weiterleitung auf eine Fehlerseite genutzt werden oder wie auch immer. Viel wichtiger wäre es aber zu ergründen was da falsch läuft und nicht nur an den Symptomen herum zu doktern.

Al-Pi
PostRank 1
PostRank 1
Beiträge: 13
Registriert: 05.08.2010, 07:50

Beitrag von Al-Pi » 13.01.2013, 18:22

lieben dank @ melegrian,

nun kann man die seiten mit index.php/... nicht mehr aufrufen

es schein ein generelles problem von woltlab burning board 3.xxx zu sein wenn man nicht zusätzlich den SEO Plugin installiert, kann man jeden forum von woltab mit slash aufrufen.

naja

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 13.01.2013, 19:18

Falls es sich machen lässt, baue in der Fehlerseite eine PHP-Weiterleitung ein. Sollte gleich zu Seitenanfang eingefügt werden.

Edit: Kleine Korrektur war noch erforderlich, so sollte es jetzt gehen.

Code: Alles auswählen

<?php
if &#40;isset&#40;$_SERVER&#91;"REQUEST_URI"&#93;&#41; and !empty&#40;$_SERVER&#91;"REQUEST_URI"&#93;&#41;&#41; &#123;

	$weiter = $_SERVER&#91;"REQUEST_URI"&#93;;
	$weiter = str_replace&#40;"index.php/index.php", "index.php", $weiter&#41;;
	$weiter = preg_replace&#40;"/&#91;^a-z0-9\/_?&=-&#93;/i", "", $weiter&#41;;

	header&#40;"Status&#58; 301 Moved Permanently"&#41;;
	header&#40;"Location&#58; http&#58;//www.allaturkaa.de".$weiter&#41;;
exit;
&#125;
?>

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag