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

Dynamische Webseite mit PHP

lacido

Mitglied
Hallo zusammen,

ich habe mir eine Webseite bzw. mal Probehalber eine dynamische Webseite gebaut, bei der Header, Navigation und Footer als Index.php gestaltet ist und die einzelnen Seiten dynamisch in den Content geladen werden.

So weit so gut, Funktioniert alles. Nun Frage ich mich aber, angenommen ein User gibt in der Suchmaschine einen oder mehrere Suchbegriffe ein, der mein Thema betrifft und sich der betreffende Text auf einer der zu ladenen thema.inc.php Seiten befindet.

Lädt nun die Suchmaschine die Seite Index.php mit der thema.inc.php , also die komplette Webseite mit Header,Navi usw. oder nur diethema.inc.phpder ja alleine die CSS Formatierung fehlen würde, bzw. die Verlinkung bei Datenbankanbindung nicht korrekt wäre.


Index.php :

Code:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">

<head>
    <title>Testdatei</title>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
    <meta name="description" content="" />
    <meta name="author" content="" />
    <meta name="keywords" content="" />

    <link href="styles/style.css" type="text/css" rel="stylesheet" />
    <link href="styles/NaviStyle.css" type="text/css" rel="stylesheet" />

</head>

<body>
    <div id="Wrapper">
        <div id="Header">
            <?php
                 include("Php-includes/ProjektLogo.php");
             ?>
        </div>

    <div id="menu">
        <a href="index.php">Pages/Home</a>
        <a href="index.php?p=Pages/aboutus">About us</a>
        <a href="index.php?p=Pages/contactus">Contact us</a>
        <a href="index.php?p=Pages/news">News</a>
    </div>

        <div id="Content">
            <?php
                $pages_dir = 'Pages';

                if (!empty($_GET['p'])) {

                    $pages = scandir($pages_dir, 0);
                     unset($pages[0], $pages[1]);

                    $p = $_GET['p'];

                     if (in_array($p.'.inc.php', $pages)){
                        include($pages_dir.'/'.$p.'.inc.php');

                    }else{
                        echo 'Die Seite wurde nicht gefunden.';
                        }
                } else {
                        include ($pages_dir.'/Home.inc.php');
                }
             ?>
    </div><!-- Ende Content -->

    <div id="Footer">
        <?php
           include("Php-includes/LastUpdate.php");
           include("Php-includes/Copyright.php");
         ?>
    </div>

   </div><!-- Ende Wrapper -->
</body>
</html>
 
Werbung:
Also ich schätze mal, dass der Google Bot oder so wie ein normaler Pagebesucher deine Seite durchcrawlt und die dynamisch erzeugte Website dann zu sehen bekommt.
Ich denke es wäre illegal, wenn der Google Bot, deine gesamte Verzeichnisstruktur oder deinen php code checken und speichern würde o_O
Also sofern er deine thema.inc.php nicht einzeln irgendwo aufrufen kann wird er das auch nicht.
 
Suchmaschinen Bots durchforsten den Quelltext, suchen sich die Anchors heraus, anschließend - sofern definiert - die im href-Attribut angegebene URL und folgen dieser. Gespeichert werden im Index also die Seiten, die Du in deinem Quelltext mittels Anchor-Element verlinkst.

Du verweist stets auf die Datei index.php, daher wird bei der Google-Suche auch diese Datei (mit URL-Parametern) zu finden sein.
 
Zuletzt bearbeitet:
Werbung:
Wie oben schon gesagt, suchen GoogleBots und andere Suchmaschinen das Web über den erzeugten HTML-Code ab. Den von dir verwendeten PHP-Code sehen sie nicht, ebenso wenig die darin includeten Dateien.

Dennoch ein Tipp, wenn Du sicher gehen willst, dass bestimmte Dateien nicht einzeln aufgerufen werden. Definiere in der index.php eine Konstante, z.B.

PHP:
define("PROJEKT", "1");

und prüfe in den Dateien die nicht direkt aufgerufen werden dürften genau auf diese Konstante:

PHP:
if( !defined("PROJEKT") ) { header("Location: index.php"); }

Dadurch wird, wenn sie direkt aufgerufen wird, direkt zur index.php weitergeleitet.
 
Hallo,

vielen Dank für die ausfühlichen Tipps. Dynamische Webseiten sind scheinbar doch nicht so einfach und sicher im Aufbau wie es anfangs aussieht.

threadi,

mein Verzeichnis in dem sich alle Seiten befinden ist: Pages da die Index.php im root zu finden ist,

somit habe ich vorgegeben:

PHP:
if( !defined("PROJEKT") ) { header("Location: ../index.php"); }

Funktioniert.

sobald man versucht auf lokal Sever die Datei thema.inc.php wird automatisch auf die Index.php verlinkt.

Das mag zwar nicht unbedingt elegant sein da man nicht direkt auf der Seite landet, aber es ist immer noch besser als der
direkte Aufruf der Datei thema.inc.php:
Screenshot_4.jpg
Also nochmals vielen Dank für die Hilfe
 
Zurück
Oben