Alternative zu RewriteEngine On
| Verfasst am: 04. 08. 2010 [13:41] | |||
| Gelöschter Benutzer | Beitrag hilfreich? | ||
| Hallo Forum, gibt es eine Alternative zu RewriteEngine On in der htacces, wenn dies vom Provider nicht Unterstützt wird ? Wollte nur für einen Bekannten eine 3-Seiten-Ferienwohnung-HP basteln, und habe einen Tarif wo RewriteEngine On fehlt ..... Wenn es keine vernünftige Alternative gibt, müsste ich den nächst höheren nehmen, der eigentlich wiederum zu viel von allem beinhaltet ... Danke | |||
| Verfasst am: 04. 08. 2010 [14:00] | |||
Matthes Dabei seit: 08.05.2010 ![]() 174 Beiträge | Beitrag hilfreich? | ||
| Theoretisch ja. Du definierst in der .htaccess die ErrorDocument-Einträge für nicht gefundene URLs (404) und lenkst sie auf irgendeine Datei, nehmen wir einfach die index.php an. Also: ErrorDocument 404 /index.php Wenn jetzt also jemand www.domain.example/tollsteferienwohnungwogibt.html aufruft, die es als Datei nicht gibt, landet er auf der index.php. Dort überprüfst Du, ob es diese Seite geben soll und bindest per include* den gewünschten Inhalt ein. Gibt es diese Seite nicht, setzt Du den entsprechenden Header*² und gibst eine Fehlermeldung aus. *: aufpassen, nicht einfach PHP include $_SERVER['REQUEST_URI'].'php'; *²: PHP header("HTTP/1.0 404 Not Found");Wichtig für Suchmaschinen, nicht vorhandene Seiten sollten auch den richtigen HTTP-Header zurückgeben. PS: Ja, ich habe eben den PHP-Tag entdeckt. Bzw. Jörg hat mich mehr oder weniger zufällig darauf hingewiesen. PPS: Die index.php sollte entsprechend im Falle eines existierenden Inhaltes auch den Status 200 zurückgeben, um ggf. einen 404 vom Server zu überschrauben. PPPS: überschreiben [Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 04.08.2010 um 14:06.] Mal: "May have been the losing side. Still not convinced it was the wrong one." | |||
| Verfasst am: 04. 08. 2010 [14:47] | |||
joerg Dabei seit: 09.06.2009 ![]() 1540 Beiträge | Beitrag hilfreich? | ||
| Hallo Sven Darf ich erstmal fragen was du überhaupt umschreiben willst? Mit www. und ohne ist kein Problem bei Verwendung von PHP. Dann könnte ich mir eine Lösung per PHP vorstellen. Mit $_SERVER['REQUEST_URI'] die eingabe feststellen. Wenn dann www. enthalten ist mit header() einen 301 senden und mit header location auf ohne www. umleiten. Sicher bin ich mir jetzt 100%ig nicht das nicht schon ein Header mit 200 gesendet worden dann ist. Das kannst du dann aber mit diesem Tool http://floern.com/tools/getheader überprüfen. Müsste so ungefähr lauten. PHP <?php if (preg_match('#^http://www.#i',$_SERVER['REQUEST_URI']) { $url = preg_replace('#^http://www.#i','#^http://#i',$_SERVER['REQUEST_URI']); header("Status: 301"); header('Location: '.$url); } ?> Und was ich jetzt nicht genau weiss ist wie sieht es aus wenn die Angabe im Browser ohne http:// gemacht worden ist. Dann müsste man wohl ^http:// aus dem Skript rausnehmen. Und wenn das Skript einen Fehler haben sollte hoffe ich mal das die PHP Experten mich korrigieren. Was ich auch nicht weiss wie Seitenreport bei der Analyse darauf reagieren würde wenn es funktioniert. Also ein absoluter Testfall. Und nur wegen Duplicate Content würde ich nicht zu einem teurerem Paket greifen. Das ist es einfach nicht wert. Gruß Jörg [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 04.08.2010 um 14:48.] | |||
| Verfasst am: 04. 08. 2010 [15:16] | |||
Matthes Dabei seit: 08.05.2010 ![]() 174 Beiträge | Beitrag hilfreich? | ||
| Wenn es nur um die Vermeidung von Duplicate Content geht, ist folgende Variante wesentlich einfacher: PHP <?php if (!strstr($_SERVER['HTTP_HOST'],'www')) { header('Location:http://www.domain.example',true,301); } ?> (Diese Variante gilt für Domains, bei denen "www." erwünscht ist, soll es ohne "www" sein, das Ausrufezeichen vor dem strstr und das "www." in dem header-Aufruf entfernen - und es funktioniert natürlich nur für Domains, die kein "www" im Namen haben )Da muss man auch keine weiteren Header mehr senden, das reicht völlig. @Jörg: REQUEST_URI enthält nur den relativen Pfad, HTTP_HOST oder SERVER_NAME wären die richtige Wahl. Und ob http:// eingegeben wurde oder nicht ist völlig egal, das enthalten die Variablen ohnehin nicht. Dauernd vergesse ich was... Für die Analyse bei Seitenreport sollte es keinen Unterschied machen, ob man per .htaccess oder per PHP umleitet, die Antwort vom Server ist in beiden Fällen gleich. [Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 04.08.2010 um 15:22.] Mal: "May have been the losing side. Still not convinced it was the wrong one." | |||
| Verfasst am: 04. 08. 2010 [15:47] | |||
joerg Dabei seit: 09.06.2009 ![]() 1540 Beiträge | Beitrag hilfreich? | ||
| Hallo Matthias Dann sollten wir diesen Gedanken aber auch so weitertreiben das jede Seite wieder auf dieselbe Seite umleitet halt eben ohne oder mit www. . PHP <?php header('Location: http://www.'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'],true,301); ?> wobei man dann wenn die index Datei aufgerufen wird diese dann noch per preg_replace aus dem Pfad rausnehmen sollte oder stattdessen nur die Verzeichnisse mit der Funktion die mir jetzt nicht einfällt vom Pfad ermittelt Nein besser noch Die Datei daraufhin prüfen ob sie index.php ist und dann einfügen wenn sie es nicht ist. Und halt eben auch die Verzeichnisse davor angeben. Bevor wir da aber die perfekte Lösung schreiben sollte Sven doch erst mal ganz genau angeben was er möchte. Sonst verschwenden wir hier nur Zeit. Und was die Antwort vom Server angeht da war ich mir nicht 100% ig sicher. Lieber gebe ich zu das ich es nicht genau weiss anstatt Leute in die Irre zu leiten. Und ganz sicher würde ich nur sein wenn ich das testen würde und meine htaccess ändere ich deswegen nicht ab. Gruß Jörg Nachtrag Das sollte dann aber in beiden Richtungen jetzt richtig sein. Matthias du hattest vollkommen recht damit das request uri nur den Pfad beinhaltet. Obwohl man das testen und ersetzen auch anders vornehmen kann. PHP <?php //Duplicate Content per PHP verhindern //Von ohne www. nach www. umleiten if (!strstr($_SERVER['HTTP_HOST'],'www')) { header('Location: http://www.'.$_SERVER['HOST'].$_SERVER['REQUEST_URI'],true,301); } //Von www. nach ohne umleiten if (strstr($_SERVER['HTTP_HOST'],'www')) { $host = str_replace('www.','',$_SERVER['HTTP_HOST']); header('Location: http://$host.$_SERVER['REQUEST_URI'],true,301); } ?> [Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 04.08.2010 um 16:38.] | |||
| Verfasst am: 04. 08. 2010 [17:46] | |||
| Gelöschter Benutzer | Beitrag hilfreich? | ||
| Hallo Ihr Beiden, Ihr seid ja wieder so gut zu mir Mit Eurem PHP-Code muss ich mich dann mal mehr auseinandersetzen. Beim googeln habe ich jetzt wat von einem neuen Meta-Tag "Canonical" gefunden. Habe da http://www.canonical-tag.de/ jetzt aber noch nicht alles genau gelesen, wäre doch aber wohl auch möglich oder ? Danke und Gruß | |||
| Verfasst am: 04. 08. 2010 [18:02] | |||
joerg Dabei seit: 09.06.2009 ![]() 1540 Beiträge | Beitrag hilfreich? | ||
| Hallo Sven Ja die Lösung mit dem Canonical Attribut wollte ich gerade noch nachschieben. http://www.golem.de/0902/65259.html Der Vorteil ist halt eben du kannst das auch bei html Seiten verwenden. Der Nachteil du musst das bei jeder Seite manuell ändern oder du wendest wieder PHP an mit den selben Variablen nur halt eben mit einer Ausgabe die so lauten könnte. PHP <?php if (!strstr($_SERVER['HTTP_HOST'],'www')) { echo '<link rel="canonical" href="http://www.'.$_SERVER['HOST'].$_SERVER['REQUEST_URI'].'" / >', } ?> Dabei passiert dann folgendes Wenn die Seite ohne www aufgerufen wird wird dann der Canonical eingefügt und sonst nicht. Die andere Variante kannst du dir entsprechend der PHP Umleitung auch entwickeln. Das müsstest du dann im head Bereich deiner Seite platzieren. Gruß Jörg | |||
| Verfasst am: 04. 08. 2010 [21:16] | |||
| Gelöschter Benutzer | Beitrag hilfreich? | ||
| Hallo Jörg, danke für die Info und Codebeispiel. ich muss mal sehen wie das so klappt. Am einfachsten wäre halt die .htaccess - muss da nochmal nachfragen ab das nicht doch beim kleinen "Visitenkartentarif" geht, oder halt doch etwas mehr investieren. Muß da halt auch nochmal mit meinem Bekannten sprechen. Ist jetzt aber nicht so eilig - werde mich ggf. nochmal hier melden. Gruß | |||
| Verfasst am: 04. 08. 2010 [22:40] | |||
Raptor Dabei seit: 10.05.2009 ![]() 1159 Beiträge | Beitrag hilfreich? | ||
| Ich möchte da noch kurz eine Korrektur zu Jörg's Skript beifügen: PHP <?php if(substr($_SERVER['HTTP_HOST'], 0, 4)!=='www.'){ // wenn der Host kein "www." vorne dran hat, dann: echo '<link rel="canonical" href="http://www.',$_SERVER['HTTP_HOST'],$_SERVER['REQUEST_URI'],'" />'; } ?> | |||
| Verfasst am: 04. 08. 2010 [23:02] | |||
joerg Dabei seit: 09.06.2009 ![]() 1540 Beiträge | Beitrag hilfreich? | ||
| Danke Florian Autsch da ist mir ab und zu ein HTTP_ abgekommen. Dein Weg ist noch intelligenter um auch für SubDomains geeignet zu sein. Gruß Jörg | |||
Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.
Werde in Echtzeit über neue Foren-Beiträge informiert:
6 Mitglieder waren innerhalb der letzten 15 Minuten online (145 heute gesamt):
DieWebAG, fotopalm, Legasthenie, moot64, powerpeter, saalekreis
Administratoren und Moderatoren:
[keine]
Seitenreport hat 18155 registrierte Mitglieder, 3003 Themen und 29113 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 13 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Lade...
Neueste Foren-Beiträge
| Microsofts soziales Netzwerk So.cl Internet / News | Heute [10:17] | |
| Abstimmung: 20.000 Mitglieder Jubiläum - was tun? Internes & Ankündigungen / Internes | Gestern [23:07] | |
| Nicht nachvollziehbarer CSS Fehler Internes & Ankündigungen / Analyse-Ergebnisse | Gestern [13:37] | |
| Partnerprogramm: Eintrag für Kunden erledigt Internes & Ankündigungen / Internes | 22. 05. 2012 [10:35] | |
| Hotelbericht Entwickler Treffpunkt / Website vorstellen | 22. 05. 2012 [09:28] |
Lade...
Aktuelle Artikel:
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
Facebook - eine neue Tech-Blase?
Facebook ist in den vergangenen Tagen wegen seines Börsenganges und den dabei eingefahrenen Investorengeldern von 16 Milliarden Dollar großflächig in die Kritik geraten. Der Marktwert von 104 Milliarden Dollar wird von vielen als maßlos übertrieben angesehen. Ist Facebook eine neue Internet-Blase, die in den nächsten Jahren platzen wird?
18. Mai 2012
Suchmaschinenoptimierung seit dem Google Penguin Update
Das neue Update vom Branchenriesen Google wird in Seo-Kreisen gerne mit einem Erdbeben verglichen. Diese Metapher trifft die Sachlage sehr gut, denn der Pinguin bringt die Arbeitsfundamente der Suchmaschinenoptimierer gehörig ins Wanken.
15. Mai 2012
Tipps für den guten Start ins Business
Sich selbstständig machen, eine Firma gründen und direkt ins eigenständige Berufsleben einzusteigen klingt spannend und irgendwie auch einfach. Doch einfach ist es ganz und gar nicht...
14. Mai 2012


)