• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Weiterleitung nur bei Zugriff von externer Seite?!

Status
Für weitere Antworten geschlossen.

nascituruz

Neues Mitglied
Hi,

ich hoffe ihr könnt mir wieder einmal helfen, ich habe eine seite mit einem <div> tag in der Mitte für den Inhalt und links ein Menu....

im div Tag habe ich nun die include Funktion stehen als if else Bedingung für Variablen aus dem Link, (hoffe man versteht was ich meine?!)

Nun stehen ja in den includierten Seiten der Inhalt, wenn jetzt jemand diese Seite in einer Suchmaschine findet und anklickt kommt er direkt auf die seite und hat sozusagen nur den div Tag vor der Nase, kein Menu, kein Header u.s.w., also habe ich versucht das ganze mit meta="refresh" zu realisieren, das Fazit ist, dass sich der ganze div.tag continuierlich "refresh't" ;ugl ....logisch! _Nun such ich nach einer Möglichkeit auf die Home Seite mit Link incl. variable umzuleiten falls nicht vom root verzeichnis aus zugegriffen wird? Geht das? ...und WIE?

Danke schon mal im Voraus
Grüße Nascituruz
 
PHP:
<?php
 if($goto == "jobs")
{
include("jobs.php");
}
 
if($goto == "")
{
include("home.php");
}
?>

das ist der code aus dem div.Tag und hier der code aus der jobs.php

HTML:
<meta http-equiv="refresh" content="0; URL=http://www.seite.de/home.php?goto=jobs">

logisch das jetzt auf der www.seite.de/home.php?goto=jobs.php sich der div.Tag alle 0 sek aktualisiert bzw. die Seite .....

Aber wenn der User jetzt nur www.seite.de/jobs.php eingibt bzw. diese url würde ja vermutlich dann von Suchmaschinen aufgerufen werden bzw. indiziert, kommt er ja nun auch auf die home.php mit verweis des gesuchten inhalts hier nun home.php?goto=jobs ...

jetzt brauch ich ne Lösung für beschriebenes Problem
 
Wo hast du die Variable $goto bestimmt?

Also ich würd das so machen:
PHP:
<?php
$goto = $_GET['goto'];
 
if($goto == 'jobs')
{
 include "jobs.php";
}
elseif(!isset($goto)) // Hier würd ich elseif nehmen, is besser
{
 include "home.php";
}
?>
Also !isset sagt, ob die Variable $goto etwas beinhaltet oder nicht.
Alternativ gibt es noch empty();


MfG, matibaski
 
Hi,

danke erstmal fürs Interesse und den Tip aber ich seh jetzt nun nicht auf Anhieb die Lösung meines Problems?!

Ich will ja eigentlich wissen, wie ich eine Weiterleitung mit Bedingung des externen Zugriffs (z. b. von einer Suchzmaschine aus) realisiere.

Grüße Nascituruz
 
PHP:
if(!empty($_SERVER['HTTP_REFERER']))
{
    if(strstr($_SERVER['HTTP_HOST'], $_SERVER['HTTP_REFERER']) === false)
    {
        header("Location: http://www.andere-seite.de/");
    }
}
 
...ok ich bin nicht son Experte, aber das sieht n bissl danach aus was ich suche?! ich hab des nun so eingefügt, das gewünschte Ergebnis bleibt aber leider aus

HTML:
<meta http-equiv="refresh" content"; url=
 
<?php
if(!empty($_SERVER['HTTP_REFERER']))
{
    if(strstr($_SERVER['HTTP_HOST'], $_SERVER['HTTP_REFERER']) === false)
    {
        header("Location: http://www.seite.de/index.php?goto=jobs");
    }
} 
?>
 
" />

jetzt passiert allerdings gar nichts mehr.....also ist offentsichtlich noch was verkehrt...;)?!
 
warum machst du diese weiterleitung ? warum sollten nicht alle über die index.php gehen, ich verstehe deinen denkansatz nicht.
ich denke, du verdrehst irgentwas.

lege die files die du includierst innen anderen ordner und schütze diesen dann mit ner .htaccess.
 
....ich weiss ich drück mich kompliziert aus ^^ also ich probiers nochmal die Seite baut sich aus der index.php auf und includiert seiten per Menu in den mittleren div tag also je nachdem welcher Link angeklickt wird lautet der link index.php?goto=inhalt oder goto=jobs oder oder oder dazu hab ich mehrere Seiten.php diese können ja dann bezugnehmend auf die jeweiligen Information der Seite für die includierung in den suchmaschinen indiziert werden, dann lautet doch aber vermutlich der Link von der Suchmaschine aus z. b. statt //index.php?goto=jobs nur //jobs.php und dann bekommt der User ja nur die jobs.php angezeigt statt die indexseite mit der jobs.php includiert?!

hoffe das man das so besser versteht achso und danke das ihr mir versucht zu helfen....

Grüße Nascituruz
 
PHP:
<?php // index.php

define("SECURE", true);

// rest

?>

PHP:
<?php // jobs.php

if(!defined("SECURE")){ header("Location: index.php"); die(); }

// rest

?>

o.O

//Edit: Ps: die funktion "header();" muss aufgerufen werden bevor etwas ausgegeben wird!
 
mod_rewrite wäre ne gute möglichkeit
htaccess auch
ansonsten wiegesagt ber eine konstante die prüft ob es includiert wurde oder alternativ über den datei namen -> basename(__FILE__); du solltest dich dennoch mit htaccess auseinandersetzen und nein, du drückst dich nicht kompliziert aus, es ist einfach stumpfsinn über den referer zu gehen, zumal diese variable vom client kommt.

also google nach mod rewrite :)
 
mod_rewrite wäre ne gute möglichkeit
htaccess auch
ansonsten wiegesagt ber eine konstante die prüft ob es includiert wurde oder alternativ über den datei namen -> basename(__FILE__); du solltest dich dennoch mit htaccess auseinandersetzen und nein, du drückst dich nicht kompliziert aus, es ist einfach stumpfsinn über den referer zu gehen, zumal diese variable vom client kommt.

also google nach mod rewrite :)

sorry fürs doppelposting möchte aber dennoch auch freak seine hilfe annerkennen *hiermit grad getan ;)* gucks mir mal an scheint interessant zu sein.... Grüße Nascituruz
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben