PDF-Aufrufe von extern umleiten?

payakootha

Grünschnabel
Hallo!

Auf meiner Website werden div. PDF-Files zum Download angeboten, die auch von Suchmaschinene gut und zahlreich indiziert sind. Was ja auch sehr schön ist - aber um die User nach Aufruf des PDFs auch zum Weitersurfen auf meiner Seite zu animieren, ist das wenig geeignet - zumal einige Dateien auch rel. groß sind, so dass Menschen mit Modem & Co. evtl. auch schon vorher entnervt abbrechen.

Optimal wäre es nun, wenn externe Aufrufe z.B. zur Übersichtsseite umgeleitet werden könnten (von wo aus die PDF abgerufen werden, wo aber auch die übrige Navigation zu finden ist) und ein entspr. PDF nur dann in einem neuen Fenster geöffnet wird, wenn der Aufruf direkt von meiner Seite erfolgt.

Idee 1: Acrobat kann Referrer identifizieren. Hab ich aber rel. schnell rausgekricht, dass er das scheinbar leider (noch?) nicht kann (sein JavaScript hilft ihm auch wenig dabei).
--> Murks

Idee 2: PDF-Aufrufe werden serverseitig/mittels htaccess umgeleitet, z.B.

RedirectMatch permanent /pdf/(.*) http://www.bla.de/pdfweiche.php?pdf=$1

und dort könnte man dann weiter was mit tun.
Nur leider kann man auf dem Weg nicht den eigentl. Referrer mit übergeben - oder?

Oder kann ich schon in der htaccess externe von internen Aufrufen unterscheiden? Das wäre natürlich am einfachsten ...


Ansonsten müsste ich die Notvariante nehmen, z.B. alle PDF grundsätzlich innem Frame anzeigen mit "dieses PDF gehört zum Webangebot bla", was ich aber eigentlich ziemlich blöd fände (und nicht jeder Browser kann Acrobat integrieren, siehe Opera).


Hat jemand eine Idee?


*P*

---

„Mancher hinterläßt eine Lücke, die ihn ersetzt.“
(Pearl S. Buck)
 
Hi!

Vielleicht kannst du ja mit einer Rewrite-Engine arbeiten. Du lässt alle Aufrufe von PDF-Dateien an ein PHP-Script übergeben, der Name kommt dann in einen Parameter (so wie du das oben schon gemacht hast).
Wenn ich mich nicht irre, steht dann auch der Referrer zur Verfügung ($_SERVER['HTTP_REFERER']). Du kannst dann doch gucken, ob der Referrer gesetzt wurde oder er von deiner Domain verweist (dann Dokument ausgeben) oder ob eine fremde Domain eingetragen ist: Dann würde ich auf deine Hauptdomain umleiten...

Mamphil
 
oh, ich dummblöd ...

sag mir doch, dass die Variable vom Referrer mit einem R geschrieben wird - bzw. ICH weiß es ja, aber Dreamweaver weiß es nicht (sauhund). Tja, vertraue niemals einer Software.

-> Angeblich hat ja einer der Code-Entwickler damals gepennt (richtig schreibt's sich ja mit zwei R), und wegen dem "Penner" kam bei mir mit $_SERVER['HTTP_REFERRER'] natürlich nix an

*grins*

Fein, dann geht's ja doch so wie ich mir das gedacht hab.

Danke & tschö!

*P*

---
"Alles, selbst die Lüge, dient der Wahrheit; Schatten löschen die Sonne nicht aus."
(Franz Kafka)
 
Wenn, dann würde ich das Ganze über .htaccess lösen. Etwa so:
Code:
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www.meinewebseite.tld/.*$ [NC]
RewriteRule /pdf/(.*) http://www.meinewebseite.tld/pdfweiche.php?pdf=$1
 
@Mamphil:
DW 6.0 - wenn man im Code "$_SERVER[" eingibt, zeigt er einem doch so schön brav die möglichen Möglichkeiten. Dort ist der HTTP_REFERER auch richtig geschrieben. Wählt man diesen Eintrag jedoch aus (Taste runter+Enter), dann schreibt er HTTP_REFERRER - nett, ne? Is mir vorher aber auch noch nie so direkt aufgefallen. Schreib auch meist per Hand, aber manchmal bedien ich mich halt doch dieser netten arbeitsvereinfachenden (?) Tools.

@Gumbo
jep - is auch schon in Arbeit. Hatte vorher außer Options, ErrorDocument und Redirect/RedirectMatch noch nicht viel mit htaccess zu tun, so dass ich noch nicht wusste, wie ich den Referrer dort schon abfangen konnte. Hab aber das mod_rewrite schon installiert, den Rest mach ich morgen fertig (irgendwann is bezahlte Arbeit auch mal zu Ende ;) )


nochmal Danke & euch noch'ne schöne Nacht!

*P*

---
"Am meisten fühlt man sich von Wahrheiten getroffen, die man sich selbst verheimlichen wollte."
(Friedl Beutelrock)
 
Zuletzt bearbeitet:
wuaaah....

boah, ich krich bald ne Kriese ...

kennt ihr diese Fehler, wo man mit Logik und Abstraktion einfach nicht mehr weiterkommt?
Also, Folgendes. Regel in der htaccess (die Conds lass ich mal weg):

RewriteRule ^(.*)\.pdf$ http://www.bla.de/openpdf.php?pdf=$1.pdf

funktioniert vorbildlich bei Dateiaufrufen wie

- pdf/gif/gifRemPlus_de.pdf
- pdf/gif/gifRemTbl_en.pdf
- pdf/gif/gifRemTbl_ru.pdf

und wird gnadenlos ignoriert bei

- pdf/gif/gifRemLsg_de.pdf
- pdf/gif/gifRemPlus_en.pdf
- pdf/gif/gifRemPlus_ru.pdf

heißt, bei diesen wird das PDF geöffnet als wär nix.

.htaccess ist mittlerweile leergeräumt bis auf die Rewrite-Anweisungen, die Links zu den PDFs liegen alle in derselben HTML-Datei, alle 100%-ig nach demselben Schema
<a href="../../pdf/gif/gifRemPlus_de.pdf" target="_blank"><img src="bla.gif" alt="xyz"></a>,
listenförmig untereinander. PDFs liegen alle in demselben Verzeichnis ... ja, usw. Also, alles toootal identisch, bis auf ein paar winzige buchstäbliche Abweichungen vor der Dateiendung: gifRemPlus_de.pdf funktioniert, gifRemPlus_en.pdf nicht.
Wieso passen die nicht zur Regel ?

*haareausrupf*

Wer hat Spaß am Rätselnüsse knacken?

*P*
 
Re: wuaaah....

Hi!

Heißen die Dateien wirklich so oder gibt es irgendwo ein ".PDF" oder ".Pdf" oder so, was du übersehen hast? Eigentlich kann ich mir das nicht vorstellen.

Wie erkennst du eigentlich, ob die Rewrite-Enginge anspringt oder nicht?

btw: DW 6 = DW MX oder DW 6 = DW MX 2004?

Mamphil
 
Hi Mamphil,

kann es mir nicht recht erklären, aber beim Apache scheinen tatsächlich Dateien mit anderer Groß-/Kleinschreibung gelegen zu haben. Dabei hießen die PDF schon immer so und ich hatte auch schon länger nix dran gemacht. Hatte sie auf Verdacht grad nochmal hochgeladen - und raaaate mal ............. (wer ändert da meine Dateinamen auf dem Server? Hm...)

Mit DW 6.0 meinte ich MX, aber nicht die 2004er Variante (so frisch bin ich nicht)


Tja, nu denn. Weiterhin frohes Schaffen, danke für den Nasenstüber und noch ein schönes Wochenende

*P*
 
Zurück