2012-01-18 8 views
1

私は直接呼び出す必要があるphpファイルを持っています。これは、PDFコンテンツをレンダリングし、application/pdfヘッダーを介して出力します。ユーザーは、呼び出したページを残さないようにします。実際のURLを公開しないようにする

このphpファイルは、私のPHPライブラリのフォルダ構造の奥にあります。私は現在、そのようなPHPファイルにリンクしています:

<a href="myserver.com/path/to/actual/phpFile/downloadPDF.pdf?arg1=blah&arg2"> 

私はむしろ私のユーザーは、ディレクトリ名やPHPファイルなどの詳細を知ることはできません。難読化によるセキュリティ、そうですか?

私が探しているリダイレクトを作成する最適な方法は何ですか?

+2

を使用してPDFファイルを呼び出すことができます。利益は純粋に化粧品になります。 – FtDRbwLXw6

答えて

3

で簡単に解決策は、あなたが場所そしてべき.htaccessファイルを検索または作成することですhtdocsディレクトリにあります。

それにコード行を追加します。

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^(.*)yournewaddress$ /path/to/actual/phpFile/downloadPDF.pdf?arg1=blah&arg2 

を次に、あなたのディレクトリ構造は、セキュリティを助けていない非表示に

<a href="myserver.com/yournewaddress"> 
0

はそれにあなたのWebルートとリンクにdownloadPDF.pdfに

<?php 
include "path/to/actual/phpFile.php"; 
?> 

を置きます。

+0

.pdfファイルがPDFファイルの場合、これは悪い考えです。 .pdfファイルがPHPファイルの場合は、なぜ.pdf拡張子があるのか​​混乱します。 – SpoonNZ

+0

OQ: "私は直接呼び出す必要があるPHPファイルを持っています。それはPDFコンテンツをレンダリングする"ので、 "path/to/actual/phpFile.php"はPHPファイルで、/downloadPDF.pdfは愚かなブラウザhappy –

+0

PDFに '<?php'がある場合は、PHPがそれを実行しようとする危険性があります。 – cHao

1

にApacheを使用している場合、あなたは

# in server-config 
RewriteRule ^/download/pdf/(.+) /path/to/actual/phpFile/downloadPDF.php?args=$1 [L,QSA] 

素敵な、人間が読めるURLを生成するために、この書き換えルールを試みることができる(.htaccessを使用している場合、主要なフォワードスラッシュを省略)

あなたはその後、使用することができ

ご覧のよう

<a href="/download/pdf/blah"> 

のようなURLはpdf/後のものは、あなたが使用することができます$_GET['args']変数に格納されますフィット。複数の引数のために、私は、スラッシュで区切っ例えば

/download/pdf/foo/bar 

をお勧めしたい...とdownloadPDF.php

$args = isset($_GET['args']) ? explode('/', $_GET['args']) : array(); 
関連する問題