防止公开实际URL

时间:2012-01-18 03:00:16

标签: php redirect

我有一个需要直接调用的php文件。它呈现PDF内容并通过application / pdf标头输出,因此用户不会离开他们调用的页面。

这个php文件位于我的php库文件夹结构的深处。我目前正在链接到php文件,如下所示:

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

我宁愿我的用户不知道目录名和php文件等细节。混淆安全,对吧?

创建重定向以实现我正在寻找的重定向的最佳方法是什么?

3 个答案:

答案 0 :(得分:3)

更简单的解决方案是查找或创建.htaccess文件,然后将其放在htdocs目录中。

在其中添加以下代码行:

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

然后你可以用

来调用你的pdf文件
<a href="myserver.com/yournewaddress">

答案 1 :(得分:1)

如果使用Apache,您可以尝试使用此重写规则来生成一个漂亮的,人类可读的URL

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

(如果使用.htaccess,则省略前导斜杠)

然后您可以使用

之类的网址
<a href="/download/pdf/blah">

pdf/之后的所有内容都会放入$_GET['args']变量中,您可以根据需要使用该变量。对于多个args,我建议用斜杠分隔它们,例如

/download/pdf/foo/bar

...并在downloadPDF.php

$args = isset($_GET['args']) ? explode('/', $_GET['args']) : array();

答案 2 :(得分:0)

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

进入webroot中的downloadPDF.pdf并链接到该文件。