Hi,
ich habe ein Problem mit einem Suchscript: Von der Startseite (index.htm) funktioniert es einwandfrei, von jeder beliebigen Unterseite aus nicht.
Da bekomme ich die Fehlermeldung:
404 Not found
The requested URL /texte/suchen.php was not found on this server.
Status: Im obersten Verzeichnis (/) liegen:
index.htm
search.php
search_config.php
suchen.php
searchlog.txt
reload.txt
und der Ordner
Texte in dem sich die Unterseiten befinden (kontakt.htm, preise.htm, usw).
Auf einer anderen Webseite habe ich das gestern ohne Probleme hingekriegt, auf der nicht, obwohl ich alles genauso gemacht habe (behaupte ich jedenfalls).
Die search_config.php:
PHP-Code:
<?php
error_reporting(0); // zur Fehlersuche diese Zeile ändern in: error_reporting(E_ALL);
$p1 = $_SERVER['SERVER_NAME'];
if(dirname($_SERVER['PHP_SELF'])!="/") {
$p2=dirname($_SERVER['PHP_SELF']).'/';
} else {
$p2 = "";
}
$pfadinfo = $p1.$p2; // URL und Verzeichnis, in dem das Script installiert ist
$mail = false; // true für E-Mail Benachrichtigung, false, falls keine E-Mail Benachrichtigung gewünscht.
$adminaddress = "name@yourdomain.de"; // an diese Adresse geht die E-Mail
$seite = "suchen.php"; // wird im E-Mail Betreff und Text angegeben
$reloadlimit = 600; // Reloadsprerre für Logfile und E-Mail Benachrichtigung in Sekunden
$dat_type = "htm|html|shtml|php|php3|php4";
/
$value = "Suchbegriff";
$length = 3;
$dirs = array(
'./',
'./texte/',
'./bilderseiten/'
);
$alledirs = false; // dann setze $alledirs = true; ACHTUNG: dies verlangsamt die Suche erheblich!
$exclude_dirs = array(
'./test/geheim/'
);
$exclude_files = array(
'search.php',
'search_config.php',
'reload.txt',
'searchlog.txt'
);
$filename = false; //true, wenn immer filename ausgegeben werden soll.
$key = false; //true, wenn das meta tag keywords durchsucht werden soll, andernfalls false
$desc = false; //true, wenn das meta tag description durchsucht werden soll, andernfalls false
$tit = false; //true, wenn das meta tag title durchsucht werden soll, andernfalls false
$tags = false; //true, wenn ALLE tags durchsucht werden sollen, andernfalls false
$limit_start = "<body";
$limit_end = "";
$exclude_strings = array('Suchbegriffe','externer Link:');
$vor = 17;
/
$nach = 90;
$show_desc = true;
$target = ""; // "", dann öffnet sich der Link im selben Fenster.
$jump = false;
/
$treffer = true; // $treffer = false; einsetzen, wenn Anzahl der Treffer nicht angezeigt werden soll.
$pfad = false; // false einsetzen, wenn der Pfad zum Treffer nicht angezeigt werden soll.
$aend_dat = false; // false einsetzen, wenn das Änderungsdatum nicht angezeigt werden soll.
$anz_dat = 10; // kann beliebig hoch gesetzt werden.
$num_list = true; // wenn false, dann Aufzählungsliste <ul>
$tipps = false; // wenn false, dann werden die Suchtipps nicht angezeigt
$zahlzeig = true; // wenn false, wird die Zahl durchsuchter Dateien nicht angezeigt.
$dauer = true; // wenn false, dann wird die Suchdauer nicht angezeigt.
/
$gzip = false;
$noresult = "<p><br />Es wurden leider keine exakten Übereinstimmungen mit dem eingegebenen Suchbegriff gefunden.<br />Vielleicht wollen Sie es mit einem allgemeineren Suchbegriff versuchen.</p>";
$vorschlag = "Oder Sie versuchen es einfach mal mit";
$minlength = "<p><br />Geben Sie bitte einen Suchbegriff von mindestens ".$length." Buchstaben Länge ein.</p>";
$suchhinweis = "Sie suchen nach";
$treff = "Treffer";
$filedate = "zuletzt geändert am ";
$angezeigttxt = ".<br />Angezeigt werden die <strong>$anz_dat</strong> besten Ergebnisse";
$sorttxt = ", sortiert nach [Anzahl der Treffer pro Dokument]";
$suchtip0 = "<h3>Suchtipps:</h3>";
$suchtip1 = "<li>Die Eingabe von Platzhalterzeichen (*) ist nicht erforderlich.</li>";
$suchtip2 = "<li>Wenn Sie Ihre Suche auf ganze Wörter einschränken wollen, fügen Sie vor und nach dem Suchbegriff jeweils ein Leerzeichen ein.</li>";
$suchtip3 = "<li>Mehrere Wörter werden automatisch mit UND verknüpft.</li>";
$suchtip4 = "<li>Falls die Suche nur einen einzigen Treffer ergibt, wird die Trefferseite direkt angesprungen.</li>";
$anzahldat = "Anzahl durchsuchter Dateien: ";
$timetxt = "Suche ausgeführt in ";
$beschreib = "Beschreibung: ";
$dateform = "de"; // hier "en" einsetzen für Datumsformat month/day/year
$suchdauer = "Sekunden";
?>
In die suchen php kommt das ganz oben hin:
PHP-Code:
<?php
ob_start();
?>
Die php-Zeilen vor dem Formular u. d. Quelltext des Formulars:
PHP-Code:
<?php
$search = "Suchbegriff";
if(isset($_GET["q"])) {
$search = stripslashes($_GET["q"]);
$search = str_replace('\"','',$search); // " aus dem Suchstring raus, das macht keinen Sinn
$search = str_replace("\'","",$search); // ' aus dem Suchstring raus
$search = str_replace('*','',$search); // * aus dem Suchstring raus, das macht keinen Sinn
$search = htmlspecialchars($search);
$search = str_replace ( '&', '&', $search ); // läßt html entities wie ş zu (z.B. türkische Sonderzeichen)
}
?>
<div id="suche">
<form id="search" method="get" action="suchen.php">
<p>
<label for="suchbegriff">Auf der Seite suchen:</label><br />
<input type="text" name="q" id="suchbegriff" size="24" /><br />
<input type="submit" class="suchbutton" value="Suche" />
</p>
</form>
</div><!--Ende #suche-->
Wo die Suchergebnisse angezeigt werden sollen kommt das noch hin:
PHP-Code:
<div id="output">
<?php include("search.php");?>
</div><!--Ende #output-->
Weiß vielleicht jemand woran das liegt und wie ich das beheben kann?
Danke im voraus
Klaus