Brixton
Avatar Brixton
Themenersteller
Student & EDV Admin
Beginner (15 Beiträge)

Meta Language, Fehlerseiten und Duplicate Content

am 20.11.2011, 14:05 Uhr eröffnete Brixton folgenden Thread
Analyse-Ergebnisse    7495 mal gelesen    11 Antwort(en).

Ja ich weiß. Dazu gibt es hier einige Threats. Aber keiner hatte eine brauchbare Lösung für mich.

Aber zunächst etwas positives. Im Gegensatz zu anderen Analysetools ist seitenreport meiner Meinung nach das Beste und ausführlichste. Super Arbeit...das Tool hat mir bereits gewaltig geholfen.

Nun zu meinem kleinen Problem.

Ich verwende HTML 4.01 Transitional, CSS 2.1 und als Zeichencode UTF-8.

Seitenreport gibt mir bei Duplicate Content: Nein, während mir SR3 ein "Ja" gibt.
Habe mit Forensuche auch schon gefunden warum. Zwar leitet spi-thalheim.de auf www.spi-thalheim.de um (via Servereinstellung) und ich habe via google Webmastertools google gesagt, dass es die Adresse ohne www. ignorieren soll, aber sowohl www.spi-thalheim.de/ als auch www.spi-thalheim.de/index.php weisen logischerweise den gleichen Content auf. Vermutlich springt SR3 also darauf an.

Nun wollte ich eine Umleitung via .htaccess machen.
Nutze ich die Lösung von User joerg:

www.seitenreport.de/forum/beitraege/internes/neu_seitenreport_3.html



passiert gar nichts.

Nutze ich:
RewriteCond %{IS_SUBREQ} false

RewriteRule ^/index\.php$ www.spi-thalheim.de [R=301,L]



passiert gar nichts.

Nutze ich:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^spi-thalheim.de$ [NC]

RewriteRule ^(.*) www.spi-thalheim.de/$1 [L,R=301]


RewriteRule ^(.*)index\.(php|html?) /$1 [L,R=301]

dann:
Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

Problem Nr.2)
Ich habe für jeden Fehlercode eine individuelle Fehlerseite, die via .htaccess umgeleitet wird.
SR bringt mir: Individuelle Fehlerseiten: Ja
SR3 bringt mir: Gültige Fehlerseite fehlt

Jetzt frage ich mich, warum meine Fehlerseiten ungültig sind?

Problem 3.)
Ich habe die Sprache via Meta Code eingebunden. Nun bekomme ich damit (bekannt) nur 55% bei Seitenreport. Also habe ich, wie im Forum mehrfach vorgeschlagen:
statt <html> --> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> eingefügt.

Nun lege ich aber großen Wert auf validität.

www.validome.org/validate


Dort wird dann aber genau diese Zeile kritisiert:
Im Element html ist das Attribut `XMLNS` nicht erlaubt.
Im Element html ist das Attribut `XML:LANG` nicht erlaubt.

Nun vermute ich, dass ein Verständnisfehler meinerseits vorliegt. Kann ihn aber nicht finden. Vielleicht kann mir hier einer helfen.

So. Vielen Dank schonmal.

Vielleicht noch eine kleine Frage am Ende. Ich bin student...würde gerne Premiummitglied werden. Auf der Startseite steht, dass Studenten alles für 50% bekommen. Bei der Bestellung kann ich aber nirgends eingeben "Student". Vielleicht kann mir einer sagen, wie ich an den Rabatt komme


www.orange-raven.de

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 20.11.2011, 14:44 Uhr schrieb joerg

Hallo Brixton

Zu Punkt 1

Momentan nutze ich die Lösung die ich auf dieser Seite erwähnt habe mit der Umleitung der Index Datei.

joerghuelsermann.de/artikel/htaccess/rewrite.php



Zu Punkt 2.

Wenn eine Seite nicht existiert leitest du per 302 auf deine Fehlerseite um.
Es wird aber kein 404 Statuscode zurückgegeben.

ErrorDocument 404 /error-404.php

sollte da helfen in der htaccess

Zu Punkt 3.

Also der einzig mir bekannte HTML Doctype der die Verwendung von XML Namensräumen gestattet ist HTML5.

Entweder wechselst du den Doctype und da wären dann auch alle XHTML Doctypes als Option im Spiel oder du kürzt die Angabe auf

[html]<html lang="de">[/html]

Allgemein würde ich jedem raten zum derzeitgen Zeitpunkt als Doctype HTML5 einzusetzen ausser in den Fällen das man wirklich einen XHTML Doctype als application/xhtml+xml senden möchte.

So und für eine solche Ãœberprüfung habe ich auch eine Seite erstellt.

joerghuelsermann.de/tool/xhtml/



Ich persönlich verwende XHTML5, weil es noch mehr Möglichkeiten bietet und mir fast absolute Fehlerfreiheit gestattet.

Aber der einzige Validator der damit umgehen kann ist meiner Ansicht nach validator.nu



Aber selbst reines HTML5 weist momentan schon viele striktere Regelungen auf als die ganzen XHTML Doctypes, wo offensichtliche Fehler von den Validatoren nicht erkannt werden. In dem Punkt kann ich nur auf die ganzen benannten Entitäten verweisen die in XML nicht erlaubt sind und damit auch nicht in XHTML.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Brixton
Avatar Brixton
Student & EDV Admin
Beginner (15 Beiträge)
am 20.11.2011, 14:55 Uhr schrieb Brixton

Hallo,

Vielen Dank erstmal für die Antworten.

Punkt 3 ist damit geklärt. Interessanterweise habe ich deine sehr hilfreiche Seite nicht beim suchen finden können. Habe sie mir aber gleich mal gebootmarkt.

Punkt 1 und 2

So sieht meine .htaccess aus:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)index\\.(php|html?) /$1 [L,R=301]
</IfModule>
Wenn ich das einfüge, kommt wieder:
Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

Mein Verdacht war ja, dass der Browser nciht klar kommt, wenn spi-thalheim.de schon Serverseitig (Einstellung in den Tools meines Hosters) schon auf www.spi-thalheim.de umleitet. Daher hatte ich die Umleitung rausgenommen. Aber auch da der gleiche Fehler.
Tritt der Fehler nciht auf, leitet es nicht um. Und wenn ich die Adresse so eingebe steht "/" da und wenn ich index.php hinten einfüge leitet es nicht auf "/" um, sondern es steht "/index.php" da.

Gleich zu Punkt 2:

ErrorDocument 400 www.spi-thalheim.de/error-400.php


ErrorDocument 401 www.spi-thalheim.de/error-401.php


ErrorDocument 403 www.spi-thalheim.de/error-403.php


ErrorDocument 404 www.spi-thalheim.de/error-404.php


ErrorDocument 410 www.spi-thalheim.de/error-410.php


ErrorDocument 500 www.spi-thalheim.de/error-500.php


ErrorDocument 501 www.spi-thalheim.de/error-501.php


ErrorDocument 502 www.spi-thalheim.de/error-502.php


ErrorDocument 503 www.spi-thalheim.de/error-503.php



Sprich ich nutze bereits den genannten Code (hätte ich auch gleich sagen sollen, Entschuldigung).


www.orange-raven.de

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 20.11.2011, 15:43 Uhr schrieb joerg

Hallo Brixton

Da wir beim selben Provider sind habe ich dir gerade meine gekürzte htaccess per PN geschickt.

Die funktioniert bei mir einwandfrei.

Ich kann mich jetzt aber auch nicht daran erinnern das ich eine Umleitung anders als in der htaccess vorgenommen habe.

Ich habe das Profipaket dort und keine deiner geschilderten Probleme.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Brixton
Avatar Brixton
Student & EDV Admin
Beginner (15 Beiträge)
am 21.11.2011, 15:32 Uhr schrieb Brixton

Dank der Großartigen Mithilfe von joerg und einigem Testen in den Servereinstellungen wurde das Problem gelöst.

Es gab zwei Ursachen für den Fehler. Der erste war die Serverseitige Umleitung von spi-thalheim.de auf www.spi-thalheim.de. Obwohl mir das Tool nach einiger Zeit "ok" angezeigt hat bei der Weiterleitung in beide Verzeichnisse (und nicht weiterleitung an die WWW Adresse) war die Umleitung wohl noch aktiv. Erst nach sehr langem warten hat es dann fuktioniert...aber auch noch nicht 100%.



Bei meinem Hoster (wie wohl auch bei einigen anderen) kann man Einfluss auf die Servereinstellungen nehmen. Jeder der schonmal ein CMS oder Forum gehostet hat, kennt sicher das Problem mit der max. FileSize die man für Web 2.0 Anwendungen meist hochdrehen muss.
Und dort gibt es den Punkt "mod_rewrite":

mod_rewrite ist ein Modul des HTTP-Servers Apache. Mit diesem Modul ist es dem Webserver möglich, URLs umzuschreiben. Das heißt, Sie können z.B. die URL www.meineseite.de/index.php?seite=bilder auf www.meineseite.de/bilder.html umschreiben und es ist damit dem Besucher nicht ersichtlich, dass sie PHP Skripte verwenden. Regeln für mod_rewrite geben Sie in einer .htaccess Datei an.

Und das stand schlicht auf "Off". Auf "On" gestellt und schon ging es.


www.orange-raven.de

Brixton
Avatar Brixton
Student & EDV Admin
Beginner (15 Beiträge)
am 21.11.2011, 18:40 Uhr schrieb Brixton

Und auf in die zweite Runde *

So sieht mein Code jetzt aus:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(spi-thalheim\\.de)(:80)? [NC]

RewriteRule ^(.*) www.spi-thalheim.de/$1 [R=301,L]


RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)index\\.(php|html?) /$1 [L,R=301]
</IfModule>

Gibt es eine Möglichkeit, dass ich die "Rewriterule" nur auf die index.php im root anwende oder aber ein spezielles Verzeichnis davon ausnehmen.

Im Ordner /news liegt mein Newssystem. CuteNews geht beim Absenden einer neuen News auf "news/index.php" zurück. Problem: index.php wird umgeschrieben auf /...so kommt dann Fehler 404.
Schalte ich die htaccess aus funktioniert es problemlos.


www.orange-raven.de

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 21.11.2011, 19:14 Uhr schrieb joerg

Hallo Brixton

Ich verweise dich dann nochmal auf meine Seite zu Rewrite Modul. Zwar mit dem Beispiel zu einer Datei aber es sollte kein Problem sein ein Verzeichnis stattdessen anzugeben.

Steht direkt unterhalb des Punktes mit den Index Dateien.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Brixton
Avatar Brixton
Student & EDV Admin
Beginner (15 Beiträge)
am 21.11.2011, 20:43 Uhr schrieb Brixton

htaccess und ich werden wohl so schnell keine Freunde...

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(spi-thalheim\\.de)(:80)? [NC]

RewriteRule ^(.*) www.spi-thalheim.de/$1 [R=301,L]


RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)index\\.(php|html?) /$1 [L,R=301]
</IfModule>

Habe ich geändert in:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !news/index\\.php
RewriteCond %{QUERY_STRING} !^$ [NC]
RewriteRule (.*) %{REQUEST_URI}? [R=301,L]
RewriteCond %{HTTP_HOST} ^(spi-thalheim\\.de)(:80)? [NC]

RewriteRule ^(.*) www.spi-thalheim.de/$1 [R=301,L]


RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)index\\.(php|html?) /$1 [L,R=301]
</IfModule>

Es passiert aber nada. Mache ich
RewriteCond %{REQUEST_URI} !news\\ kommt Fehler 500.

Wo liegt mein Denkfehler O_o


www.orange-raven.de

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 21.11.2011, 20:57 Uhr schrieb joerg

Hallo Brixton

Dein Denkfehler liegt darin das du

RewriteCond %{REQUEST_URI} !news/index\\.php
RewriteCond %{QUERY_STRING} !^$ [NC]
RewriteRule (.*) %{REQUEST_URI}? [R=301,L]

zugefügt hast. Das bedeutet dann nicht mehr als ausser bei der news.index.php wenn Paramater gesetzt sind die Parameter aus der Url entfernt werden sollen.

Du willst aber im Grunde erreichen das nicht bei der news/index.php die Umleitung zum Verzeichnis vorgenommen wird.

Also hättest du nur die erste Bedingung ergänzen müssen bei der bereits bestehenden Regel.

Ich schreibe das jetzt aber bewusst nicht auf. Da muss sich jeder mal durchkämpfen.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Brixton
Avatar Brixton
Student & EDV Admin
Beginner (15 Beiträge)
am 21.11.2011, 21:20 Uhr schrieb Brixton

Schon klar. Wenn man sich selber durchackert merkt man sichs auch.

Ich übersetze es jetzt mal wie ich es glaube verstanden zu haben:

<IfModule mod_rewrite.c>
RewriteEngine on >>> Modus des URL Umschreiben anschalten
RewriteCond %{REQUEST_URI} !news/index\\.php >>>Wenn index.php im Verzeichnis "news" aufgerufen wird, nichts machen
RewriteCond %{HTTP_HOST} ^(spi-thalheim\\.de)(:80)? [NC]>>>wenn URL ohne www eingegeben wird dann ...

RewriteRule ^(.*) www.spi-thalheim.de/$1 [R=301,L] >>>...schreibe ein ww zwischen die Domain und das http://


RewriteCond %{QUERY_STRING} ^$ >>>wenn man im Hauptverzeichnis ist, gebe "/" an
RewriteRule ^(.*)index\\.(php|html?) /$1 [L,R=301] >>> mache aus jeder /index.php ein "/"
</IfModule>
--> Funktioniert aber irgendwie nicht. Also hab ichs wohl falsch verstanden...

Habe auch schon folgendes versucht:
RewriteCond %{HTTP_HOST} ^(http://www.spi-thalheim.de/news\\)(:80)? [NC]

RewriteRule ^(.*) www.spi-thalheim.de/news/index\\.php [R=301,L]



Aber da war der Effekt gleich 0 X_O*


www.orange-raven.de

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 21.11.2011, 22:33 Uhr schrieb joerg

Hallo Brixton

Okay da fehlen wohl die Basics.

RewriteCond sind Bedingungen von denen man mehrere hintereinander setzen kann.

RewriteRule also die Regel kommt danach und schliesst alle vorherigen Bedingungen ein, das diese erfüllt sein müssen.

So also dann nimmt man deinen ersten Versuch.

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)index\\.(php|html?) /$1 [L,R=301]

und ergänzt also vor der Regel das Ganze mit

RewriteCond %{REQUEST_URI} !news/

Und die Reihenfolge der Bedingungen ist egal, weil alle zutreffen müssen.

Und du hast 2 Dinge falsch verstanden.

RewriteCond %{REQUEST_URI} !news/

bedeutet es betrifft nicht das Verzeichnis news.

RewriteCond %{QUERY_STRING} ^$

bedeutet wenn kein Parameter angegeben ist.

Du neigst meiner Ansicht dazu zu leicht aufzugeben und wenn man sich mit der htaccess beschäftigt und im Speziellen mit dem Rewrite Modul sollte man halbwegs fit auch in regulären Ausdrücken sein.

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools



« zurück zu: Analyse-Ergebnisse

Das Seitenreport Forum hat aktuell 5275 Themen und 36110 Beiträge.
Insgesamt sind 48360 Mitglieder registriert.