Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Falsch getippte URL mit einer error.php ermitteln
#1
Ich habe eine myBB-Datei mit dem Standardaufbau und dem Template "errorseite"
angelegt (fehler.php). In meiner .htaccess leite ich auf die fehler.php weiter, die im forumverzeichnis liegt mit dieser Zeile in .htaccess.
ErrorDocument 404 http://www.meineseite.de/forum/fehler.php
Ich brauche die volle URL, damit alle Zugriffsversuche auf der gesamten Domain
zu meiner fehler.php weitergeleitet werden, auch diejenigen ausserhalb des Forum-
verzeichnisses. Das klappt mit der Umleitung auch soweit.
Nun kommt mein Frage: Wie kriege ich die URL heraus, die vorher eingetippt wurde und zu dem 404 Fehler geführt hat?

Ich tippe zum Beispiel dann eine falsche URL zum Testen ein:
http://www.meineseite.de/forum/index3.php

Folgendes probierte ich bereits ohne Erfolg aus um die falsche URL zu bekommen:
$_SERVER['HTTP_REFERER'] Bleibt immer leer.
$_SERVER['REQUEST_URI'] Bleibt immer leer.
$_SERVER['REDIRECT_URL'] Enthält auch nichts.

Das war auch schon alles was ich in den vielen gleichartigen Threads im Internet
fand. Eine Lösung dafür wurde nirgends angeboten.
Vielleicht weis ja von euch noch einer Rat, ihr seid ja die Profis wenn ihr
ein mybb machen könnt! Wink
In der Politik ist es manchmal wie in der Grammatik: Ein Fehler, den alle begehen, wird schließlich als Regel anerkannt.
André Malraux
Zitieren
#2
Hallo,

füge mal ein phpinfo('INFO_VARIABLES'); in die Seite ein (PHP). Dann solltest du sehen, welche (inexistente) Seite aufgerufen wurde (und natürlich die gewünschte Variable dazu Wink ).
Zitieren
#3
Mein Google SEO Plugin macht es derzeit so:

PHP-Code:
/**
 * Obtain the current URL.
 *
 * @return current URL
 */
function google_seo_redirect_current_url()
{
    
// Determine the current page URL.
    
if($_SERVER["HTTPS"] == "on")
    {
        
$page_url "https://".$_SERVER["HTTP_HOST"];
    }

    else
    {
        
$page_url "http://".$_SERVER["HTTP_HOST"];
    }

    
$page_url .= $_SERVER["REQUEST_URI"];

    return 
$page_url;


Ob das bei 404 Seiten sich anders verhält, weiß ich nicht.

Dein Problem ist vermutlich, daß du das über volle URL / Umleitung machst. Warum das notwendig sein sollte habe ich noch nicht verstanden. Wenn du eine 404 Seite für deine ganze Präsenz haben willst, musst du diese in der .htaccess im Hauptverzeichnis / angeben. Das sollte dann auch für alle darunterliegenden Verzeichnisse gelten.
Zitieren
#4
Die phpinfo hatte ich schon ausgeben lassen, da ist allerdings keine Variable dabei, die die gewünschte Information auch wirklich enthält.
Das was das SEO Plugin macht, funktioniert in diesem Fall nicht.
Der HTTP_HOST ist ja nur der Domainname also "meineseite.de" und die
REQUEST_URI ist ja eh immer leer, insofern nutzlos.

Zitat:404 Seite für deine ganze Präsenz haben willst, musst du diese in der .htaccess im Hauptverzeichnis / angeben
Diese liegt im Hauptverzeichnis der Domain.
Wenn ich dieses hier schreibe, so funktioniert die Umleitung nur
im Domainverzeichnis also /irgendeinefalscheurl.php
Im Forumverzeichnis klappt es damit nicht mehr, da wird dann
auf forum/forum/fehler.php weitergeleitet.
Dasselbe gilt für andere Verzeichnisse wie Adminverzeichnis.
Also brauche ich die volle URL, denn das unten funktioniert
nur auf der direkten Domain-Ebene nach dem ersten \.

ErrorDocument 404 forum/fehler.php

Hat sonst noch jemand eine Idee?
In der Politik ist es manchmal wie in der Grammatik: Ein Fehler, den alle begehen, wird schließlich als Regel anerkannt.
André Malraux
Zitieren
#5
Bei Google SEO 404 sieht der Eintrag so aus:

Zitat:ErrorDocument 404 /misc.php?google_seo_error=404

Bei dir fehlt der /

Und REQUEST_URI sollte nicht leer sein, war bei mir bislang noch bei keinem Host so...
Zitieren
#6
In der Tat, danke Frostschutz der kleine Strich war wohl wirklich ausschlaggebend. Cool

Danke noch an querschläger für die Variablen. Diese habe ich jetzt in die Startseite eingebunden, damit auch meine Besucher meine Serverinfos sehen können.
Ich habe immer php_info verwendet und die war immer leer bis auf drei Variablen.
Der Befehl von Dir bringt schon mehr Variablen zum Vorschein und das ist sehr nützlich, danke Smile
In der Politik ist es manchmal wie in der Grammatik: Ein Fehler, den alle begehen, wird schließlich als Regel anerkannt.
André Malraux
Zitieren
#7
(09.08.2009, 17:25)Riccardo schrieb: Danke noch an querschläger für die Variablen. Diese habe ich jetzt in die Startseite eingebunden, damit auch meine Besucher meine Serverinfos sehen können.

Höre ich da ein kleines bisschen Ironie? Wink
Sowas testet man ja auch nicht im produktiven Betrieb! Toungue
Zitieren
#8
Zitat:Sowas testet man ja auch nicht im produktiven Betrieb!

Ja, da hast Du natürlich schon Recht. Meine Seite bzw. mein Forum ist
eher ein Forümchen, d.h. ich bewerbe es nicht und es ist nur für meine
Kumpels und mich und für so ein paar Bekannte und vielleicht zehn
zufällig dazugestossene. Die kennen mich ja schon und da ist das nicht
weiters schlimm, wenn da mal was schiefgeht.
Klar, bei so einem großen Forum wäre das schon tragischer, aber bei mir nicht so Big Grin
Aber Ansprüche stellen die alle schon an mich und das Forümchen, so muß ich
jetzt verschiedenes daran machen, und ich versuche es zumindest. Blush

Ich wollte noch anmerken, dass es soweit funktioniert auch mit der $REQUEST_URI.
Also wie gesagt nochmals danke.
In der Politik ist es manchmal wie in der Grammatik: Ein Fehler, den alle begehen, wird schließlich als Regel anerkannt.
André Malraux
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Zugehörigkeit zu Benutzer-Gruppe (nicht die Hauptgruppe) ermitteln Riccardo 4 2.464 04.08.2009, 13:42
Letzter Beitrag: Riccardo