🇩🇪 Deutsche Anleitung
English version ↓Inhalt
1Erste Einrichtung
2Der Such-Block auf der Seite
| Einstellung | Bedeutung |
|---|---|
| Sprache der Texte | Wahl zwischen Deutsch und English. Platzhalter, Statusmeldungen, Trefferhinweise sowie die Bezeichnungen Seite/Datei bzw. Page/File werden automatisch passend ausgegeben. |
| Suchbereich | Alle Treffer, nur Seiten oder nur PDFs |
| Max. Trefferanzahl | Maximal angezeigte Ergebnisse (3–400) |
| Länge des Vorschautexts | Anzahl der Wörter um die Fundstelle herum (6–64) |
| Platzhaltertext | Text im leeren Suchfeld. Bleibt das Feld leer, wird automatisch der zur gewählten Sprache passende Text verwendet (Suchen… bzw. Search…). |
| Sticky Suche | Suchfeld bleibt beim Scrollen oben sichtbar |
Sprache der Suchausgabe
Über „Sprache der Texte“ kann die sichtbare Ausgabe des Such-Blocks auf Deutsch oder Englisch umgestellt werden. Die interne Suche und die Datenbank bleiben davon unberührt; geändert werden nur die Texte, die der Besucher sieht.
Weiterleitung, wenn nichts gefunden wird
Für eine erfolglose Suche kann optional eine Zielseite festgelegt werden. Dafür stehen drei Betriebsarten zur Verfügung:
| Einstellung | Bedeutung |
|---|---|
| Aus | Es wird nur „Keine Treffer gefunden.“ bzw. „No results found.“ angezeigt. |
| Nur wenn Enter gedrückt wird | Die Weiterleitung erfolgt nur dann, wenn die Suche ausdrücklich mit der Enter-Taste gestartet wurde und keine Treffer gefunden wurden. |
| Automatisch beim Tippen | Wird nach der automatischen Suche beim Tippen kein Treffer gefunden, beginnt die Weiterleitung ohne zusätzlichen Tastendruck. |
| Ziel-Seite | Relative oder absolute Zieladresse, z. B. keine-treffer.html. |
| Hinweistext | Optionaler eigener Text vor der Weiterleitung. Bleibt das Feld leer, wird automatisch ein deutscher bzw. englischer Hinweis verwendet. |
| Wartezeit | 0–10 Sekunden. Bei 0 erfolgt die Weiterleitung sofort. |
Suchbegriff als ?q=… anhängen | Optional wird der Suchbegriff an die Zielseite übergeben, z. B. keine-treffer.html?q=english. |
Bei geeigneten Seitentreffern kann zusätzlich ein Textfragment-Link (#:~:text=…) direkt zur Fundstelle führen.
3Admin-Bereich – Zugang
Typischer Pfad:
https://deine-domain.de/<website-ordner>/assets/vn-search/admin/login.php- Übersicht – Status und Kurzstatistik
- PDF-Dateien – Upload, Scan, Ausschlüsse und Cronjob
- Seiten – Übersicht erfasster HTML-/PHP-Seiten
4PDFs manuell hochladen
PDF-Dateien können im Admin-Bereich direkt hochgeladen werden. Sie werden serverseitig gespeichert und nach Text durchsucht. Falls ein Dokument keinen eingebetteten Text enthält, kann – sofern auf dem Server verfügbar – OCR verwendet werden.
5Ordner-Scan
Der Scanner kann den kompletten eingestellten Scan-Wurzelordner oder gezielt einen Unterordner rekursiv durchsuchen.
| Feld | Bedeutung |
|---|---|
| Ordner | Leer = kompletter eingestellter Scan-Wurzelordner. Sonst z. B. dateien für einen Unterordner. |
| Standard-Dateitypen | pdf, html und htm |
| Zusätzliche Dateitypen | Kommagetrennt, z. B. txt, mbrext, zip, docx. Diese werden über ihren Dateinamen auffindbar, nicht über ihren Inhalt. |
| PHP-Seiten mit erfassen | Optional. PHP-Quellcode wird nicht gelesen; die Seite wird per HTTP aufgerufen und die erzeugte Ausgabe indexiert. |
6Ordner vom Scan ausschließen
Ein einfacher Ordnername wie assets gilt in jeder Verzeichnistiefe. Der eigene Ordner assets/vn-search sowie technische bzw. versteckte Verzeichnisse wie .git, node_modules und .well-known werden automatisch übersprungen.
7Geschützte Dateimuster
config.php, *.env, *.key, db.php, *Mobirise*Platzhalter (*) sind erlaubt. Geprüft werden Dateiname, relativer Pfad und einzelne Pfadbestandteile. Bereits erfasste Treffer können nachträglich gegen die gespeicherten Muster bereinigt werden.
8Scan-Wurzelordner (Shared Hosting)
Standardmäßig startet der Scan an der Website-Wurzel. Bei mehreren Projekten auf einem Hosting-Account kann – sofern vom Hoster erlaubt – ein übergeordneter Scan-Wurzelordner wie .. oder ../.. eingetragen werden.
9Passwortgeschützte Ordner (.htaccess)
Ordner mit typischen Zugriffsschutz-Direktiven wie AuthType oder Require valid-user werden beim Scan übersprungen. Die öffentliche Suche prüft Trefferpfade zusätzlich nochmals auf entsprechenden .htaccess-Schutz.
10Seiten-Verwaltung
Unter „Seiten“ werden erfasste HTML- und – sofern aktiviert – PHP-Seiten mit ihrem Status angezeigt. HTML-Dateien werden direkt ausgelesen; PHP-Seiten werden über ihre erzeugte HTTP-Ausgabe verarbeitet.
11Bereinigen & Löschen
- Einzelne Einträge: über den Löschen-Button der jeweiligen Tabellenzeile
- Kompletter Reset: Bereiche können vollständig geleert und anschließend neu eingelesen werden
Ein kompletter Neuaufbau ist normalerweise nicht erforderlich, kann aber bei Tests oder nach größeren Änderungen sinnvoll sein.
12Automatischer Scan per Cronjob
Der Cronjob erkennt neue Ordner und Dateien ohne manuellen Klick auf „Einlesen“.
Der Cronjob durchsucht immer den kompletten eingestellten Scan-Wurzelordner und übernimmt die gespeicherten Optionen für PHP-Seiten und zusätzliche Dateiendungen. Bereits fertig indexierte, unveränderte Einträge werden nicht bei jedem Lauf erneut verarbeitet.
13Sicherheitshinweise
- PHP-Quellcode wird nicht direkt gelesen oder durchsucht.
- Sensible Dateiendungen wie
.env,.key,.sql,.htpasswdund weitere sind fest blockiert. - Passwortgeschützte Ordner werden automatisch übersprungen.
- Der Datenbankordner assets/vn-search/data/ wird per eigener
.htaccessgeschützt. - Suchergebnis-Ausschnitte werden HTML-sicher ausgegeben.
14Häufige Fragen & Problemlösung
Neue Dateien erscheinen nicht
Prüfen, ob die gewünschte Dateiendung standardmäßig unterstützt wird oder unter „Zusätzliche Dateitypen“ gespeichert ist. Für PHP-Dateien muss die PHP-Option aktiviert sein.
PDF-Text ist nur teilweise oder in Einzelbuchstaben durchsuchbar
Bestimmte PDF-Parser können Null-Zeichen-Entities in den extrahierten Text einfügen. Die aktuelle Version bereinigt diese Zeichen beim Indexieren und kann ältere betroffene PDF-Einträge einmalig reparieren.
Cronjob-Adresse liefert 404
Sicherstellen, dass die aktuelle Extension vollständig publiziert wurde und die URL exakt dem installierten Projektpfad entspricht.
Scan-Wurzelordner funktioniert nicht
Eine open_basedir-Beschränkung des Hosters kann den Zugriff auf übergeordnete Verzeichnisse verhindern.
🇬🇧 English Guide
Deutsche Version ↑Contents
1Initial setup
2The search block
| Setting | Meaning |
|---|---|
| Text language | Choose between Deutsch and English. Placeholders, status messages, result hints and the labels Seite/Datei or Page/File are displayed automatically in the selected language. |
| Search scope | All results, pages only, or PDFs only |
| Maximum results | Maximum number of displayed results (3–400) |
| Snippet length | Number of words shown around the match (6–64) |
| Placeholder | Text shown in an empty search field. If left empty, the block automatically uses the text for the selected language (Suchen… or Search…). |
| Sticky search | Keeps the search field visible while scrolling |
Search-result language
The visible texts of the search block can be switched between German and English using “Text language”. This does not affect the internal search logic or database; only visitor-facing labels and messages are translated.
Redirect when no results are found
An optional target page can be configured for unsuccessful searches. Three modes are available:
| Setting | Meaning |
|---|---|
| Off | Only “Keine Treffer gefunden.” or “No results found.” is displayed. |
| Only when Enter is pressed | Redirect only if the search was explicitly started with the Enter key and returned no results. |
| Automatically while typing | If the automatic search while typing returns no results, the redirect starts without an additional key press. |
| Target page | Relative or absolute target URL, for example no-results.html. |
| Notice text | Optional custom message shown before the redirect. If left empty, a language-specific default message is used. |
| Delay | 0–10 seconds. A value of 0 redirects immediately. |
Append search term as ?q=… | Optionally pass the search term to the target page, for example no-results.html?q=english. |
Where appropriate, page results can use a text-fragment URL (#:~:text=…) to jump directly to the matching text.
3Admin area – access
Typical path:
https://your-domain.example/<website-folder>/assets/vn-search/admin/login.php- Overview – status and summary
- PDF files – uploads, scanning, exclusions and cron setup
- Pages – indexed HTML/PHP pages
4Uploading PDFs manually
PDFs can be uploaded directly in the admin area. They are stored on the server and indexed for text search. If a PDF has no embedded text, OCR can optionally be used when the required server-side tools are available.
5Folder scan
The scanner can recursively scan the complete configured scan root or a selected subfolder.
| Field | Meaning |
|---|---|
| Folder | Empty = scan the complete configured scan root. Otherwise enter a subfolder such as files. |
| Default file types | pdf, html and htm |
| Additional file types | Comma-separated, e.g. txt, mbrext, zip, docx. These are searchable by file name, not file content. |
| Include PHP pages | Optional. PHP source code is never read; the page is requested over HTTP and the generated output is indexed. |
6Excluding folders
A simple folder name such as assets applies at any directory depth. The extension's own assets/vn-search folder and technical or hidden folders such as .git, node_modules and .well-known are skipped automatically.
7Protected file patterns
config.php, *.env, *.key, db.php, *Mobirise*Wildcards (*) are supported. VN Search checks file names, relative paths and individual path components. Existing index entries can also be cleaned against the saved patterns.
8Scan root on shared hosting
By default, scanning starts at the website root. If several projects share one hosting account, a parent scan root such as .. or ../.. can be configured, provided the hosting environment allows access.
9Password-protected folders (.htaccess)
Folders containing access-control directives such as AuthType or Require valid-user are skipped during scanning. Public search results are also checked again for corresponding .htaccess protection.
10Page management
The “Pages” section lists indexed HTML pages and, when enabled, PHP pages together with their status. HTML files are read directly; PHP pages are processed from their generated HTTP output.
11Cleaning and deleting
- Single entries: remove them using the delete button in the corresponding row
- Full reset: index areas can be cleared completely and scanned again
A full rebuild is normally unnecessary, but can be useful during testing or after major changes.
12Automatic scanning with a cron job
The cron job detects new folders and files without manually clicking the scan button.
The cron job deliberately scans the complete configured scan root and uses the saved options for PHP pages and additional file extensions. Already indexed, unchanged records are not processed again on every run.
13Security notes
- PHP source code is never read or searched directly.
- Sensitive file extensions such as
.env,.key,.sql,.htpasswdand others are permanently blocked. - Password-protected folders are skipped automatically.
- The database folder assets/vn-search/data/ is protected by its own
.htaccess. - Search-result snippets are safely escaped before output.
14FAQ and troubleshooting
New files do not appear
Check whether the extension is supported by default or saved under “Additional file types”. PHP files require the PHP option to be enabled.
PDF text is searchable only partially or as single letters
Some PDF parsers may insert null-character entities into extracted text. Current versions clean these characters while indexing and can repair older affected PDF index entries once.
The cron URL returns 404
Make sure the current extension has been fully published and that the URL exactly matches the installed project path.
The configured scan root does not work
An open_basedir restriction imposed by the hosting provider may prevent access to parent directories.