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

besucher von facebook und /?ref=nf

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
umwelt
PostRank 6
PostRank 6
Beiträge: 386
Registriert: 16.11.2011, 22:06

Beitrag von umwelt » 16.01.2012, 16:30

Hallo,
in meiner statistik sehe ich, dass viele besucher von facebook auf meine seite blablabla.de/ kommen, allerdings mit dem anhängsel ?ref=nf kommen.

normalerweise dürfte kein query-string angehängt werden, in dem fall wird ein 404 herausgegeben... irgendwas ist da im argen.

also: blablabla.de/ --> alles klar
blabla.de/?ref=nf == 404 fehler.

ich nutze mod_rewrite, aber mir kommt nicht so recht in den sinn, wodurch dieser fehler verursacht werden könnte...

normaler weise dürften solche queries ja gar nicht beachtet werden, sofern php nicht per $_GET[] drauf zugreift...
Zuletzt geändert von umwelt am 16.01.2012, 16:41, insgesamt 1-mal geändert.

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

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 16.01.2012, 16:41

Das "?ref=nf" hängt Facebook an.

ref = referral
nf = newsfeed

umwelt
PostRank 6
PostRank 6
Beiträge: 386
Registriert: 16.11.2011, 22:06

Beitrag von umwelt » 16.01.2012, 16:43

ja, ich weiß. das soll der besucherstatistik dienen (was es ja auch tun würde, wenn man referrer verachtet und die tatsache, dass jeder sowas anhängen kann).

ich frage mich nur, warum das zum 404 führt.. es ist nur ein query-string... bei unterseiten funktioniert es. blablabl.de/seite2.php?ref=nf funktioniert. nur blablabl.de/?ref=nf nicht.

liegt bestimmt an der .htacces... nur was genau?

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.


Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 16.01.2012, 16:47

Achso... Jep, wenn das zu einem Fehler führt, dann liegt es an Deinem System / eventuell der htaccess...

Wo genau? Keine Ahnung, die htaccess kennen wir ja nicht.

umwelt
PostRank 6
PostRank 6
Beiträge: 386
Registriert: 16.11.2011, 22:06

Beitrag von umwelt » 16.01.2012, 17:02

PHP (pathinfo) sagt, dass ?ref=nf der filename wäre...

das verstehe ich einfach nicht... habe grade die komplette URL parsen lassen, und dennoch sagt PHP, die query wäre der filename...

in der .htaccess habe ich nur regeln für unterverzeichnisse bzw. aufrufe im format blabla.html.

da blabla.de/ sowieso auf index.php weiterleitet, habe ich da nicht extra eine regel eingebaut.
Sollte ich aber vielleicht... nur wie?

umwelt
PostRank 6
PostRank 6
Beiträge: 386
Registriert: 16.11.2011, 22:06

Beitrag von umwelt » 16.01.2012, 17:08

habe es jetzt PHP-seitig so versucht (hoffe, das haut hin):

<?php
if(str_replace(stristr($p, "?"), "", $p) == "") {
$p=str_replace(stristr($p, "?"), "", $p);
}
?>

er prüft also, ob der ganze pfad abzüglich aller zeichen ab (inkl) ? ungleich "" ist...

viele grüße!
Zuletzt geändert von umwelt am 16.01.2012, 17:11, insgesamt 1-mal geändert.

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 16.01.2012, 17:09

Nenn doch einfach erst mal die htaccess.... Warum PHP das mit dem filename behauptet ist ein ganz anderer Punkt. Kann von der htaccess kommen, aber auch nicht. htaccess ist jedenfalls das erste was abgearbeitet wird.

umwelt
PostRank 6
PostRank 6
Beiträge: 386
Registriert: 16.11.2011, 22:06

Beitrag von umwelt » 16.01.2012, 17:13

Code: Alles auswählen

RewriteEngine on
Options +FollowSymlinks

RewriteCond %&#123;HTTP_HOST&#125; !^www\.blablabla\.de$
RewriteRule ^&#40;.*&#41;$ http&#58;//www.blablabla.de/$1 &#91;L,R=301,QSA&#93;

RewriteRule ^&#40;.*&#41;/&#40;&#91;0-9&#93;+&#41;.html$ sys.php?c=$1&p=$2 &#91;NC,L,QSA&#93;
RewriteRule ^bild/&#40;.*&#41;.png$ img.php?iid=$1 &#91;NC,L,QSA&#93;
RewriteRule ^&#40;.*&#41;.html$ index.php?path=$1 &#91;NC,L,QSA&#93;

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 16.01.2012, 17:13

Und wenn es in der htaccess gar nichts gibt, was den Fehler verursachen könnte, dann liegt es an der index.php

umwelt
PostRank 6
PostRank 6
Beiträge: 386
Registriert: 16.11.2011, 22:06

Beitrag von umwelt » 16.01.2012, 17:22

joa.. also ich bekomme in der index.php einen $path übergeben, den ich parse, um die entsprechenden seiten anzufordern...
mir ist eben nur ein rätsel, warum php den query-string als filename verwendet... so muss ich nochmal extra auf fragezeichen prüfen....

stzweio
PostRank 4
PostRank 4
Beiträge: 125
Registriert: 20.06.2011, 10:42
Wohnort: Rhein-Neckar-Kreis

Beitrag von stzweio » 16.01.2012, 17:31

umwelt hat geschrieben:blablabl.de/seite2.php?ref=nf funktioniert. nur blablabl.de/?ref=nf nicht.
Gib in deiner htaccess den DirectoryIndex an, also

Code: Alles auswählen

DirectoryIndex index.php
(oder was immer deine Index-Datei ist)

siehe auch diesen Thread:
https://www.abakus-internet-marketing.d ... 04668.html

umwelt
PostRank 6
PostRank 6
Beiträge: 386
Registriert: 16.11.2011, 22:06

Beitrag von umwelt » 16.01.2012, 17:43

hallo,
das hilft mir leider auch nicht weiter... klingt zwar interessant und verheißungsvoll, aber der test ergab: keine veränderung :(.
nach wie vor wird der query-string als filename gehandlet.

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 16.01.2012, 18:46

So, nochmal...

Du bekommt also so etwas zurück??
Array
(
[dirname] => https://www.blabla.de
[basename] => ?test_info
[filename] => ?test_info
)
Wenn ja, dann ist Dein Script fehlerhaft. pathinfo arbeitet mit Dateipfaden auf Serverebene, nicht mit URLs !!!

Und bei einem Dateipfad ist kein Query vorhanden, also verwendest Du definitiv den falschen Input für die Funktion. Du kannst [SCRIPT_FILENAME] oder auch [SCRIPT_NAME] als Input nehmen, nicht aber [REQUEST_URI]. Letzteres geht unter Umständen schon, aber eben auch mit unerwarteten Ergebnissen wie bei Dir.

Pathinfo erwartet so etwas hier:
/var/www/vhosts/domain.de/public_html/system/file.php

und nicht
https://domain.de/system/file.php

Das was Du wohl suchst / brauchst ist parse_url().

umwelt
PostRank 6
PostRank 6
Beiträge: 386
Registriert: 16.11.2011, 22:06

Beitrag von umwelt » 16.01.2012, 19:15

naja, aber bei mod_rewrite bekomme ich ja die link-URLs, und die sind mit domainname...

aus der URL extrahiere ich den scriptname. ist glaub usus, oder?

ich bekomme tatsächlich das, was du schriebst.,.. filename = ?ref=nf...

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 16.01.2012, 19:26

Also nochmal...

Deine htaccess hat damit nichts zu tun...

Dein Script führt das pathinfo aus und dann machst Du mit dem Ergebnis irgendwas. Wenn falsch, wohl einen Fehler senden und genau der kommt ja.

Deine Frage war, warum der querystring als filename angegeben wird. Ganz einfach, weil Du pathinfo mit falschen werten fütterst.

URL: https://www.blabla.de/?ref=nf

alles bis inkl. dem letzten / ist der dirname
^^ also bei einer URL eben das https://www.blabla.de/?ref=nf

alles nach dem letzten / ist der basename
^^ in deinem Fall eben https://www.blabla.de/[b]?ref=nf[/b]

Alles nach dem letzten / und nach dem ersten Punkt (.) ist die Extension.
^^ Punkt gibt es nicht, also auch keine Extension

Alles ab dem letzten / bis zum ersten Punkt ist der Filename
^^ also eben wieder https://www.blabla.de/[b]?ref=nf[/b]

Die Funktion arbeitet also völlig korrekt, Du fütterst Die nur mit falschen Daten.

Also nicht die beiden "Pfade" verwechseln. Mod_rewrite arbeitet auf URL-Ebene, also mit Angaben ab dem Dokumenten-Root.

Pathinfo() arbeitet auf Datei-Ebene (Verzeichnisstruktur) ab dem Server-Root.

Schau Dir mal die Ausgabe von $_SERVER komplett an, da sind alle Werte drinnen. Zum einen der URL-Pfad und auch der Datei-Pfad.

z.B. Deine sys.php liegt etwa hier:
DOCROOT/sys.php

Auf Dateiebene aber z.B. hier:
SERVERROOT/var/www/vhosts/domain.de/http_docs/sys.php

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag