在处理通过URL进行的http调用之前自动运行文件

时间:2013-11-14 14:23:27

标签: php http

只是想知道这是否可行。

当我通过浏览器调用http://localhost/TEST/folder_validation/1.pdf时,validate.php应该在更新'log.txt'之前运行并将用户重定向到不同的URL。

下面的当前解决方案无效。

有可能吗?如果是这样,我该怎么做?

由于

文件夹结构:

folder_validation/1.pdf
folder_validation/2.pdf
folder_validation/log.txt
folder_validation/validate.php
folder_validation/.htaccess
folder_validation/..............

validate.php文件的内容:(不会更新日志文件

$file = 'log.txt';
$current = file_get_contents($file);
$current .= $_GET['filename'] . "\n";
file_put_contents($file, $current);

header('Location: http://stackoverflow.com/');
exit;

.htaccess文件的内容:(如下面建议的答案)

RewriteEngine On
RewriteCond %{REQUEST_URI} \.(pdf)$ [NC]
RewriteRule ^(.*)$ /validate.php?filename=$1 [L]

2 个答案:

答案 0 :(得分:2)

尝试

RewriteEngine On
RewriteCond %{REQUEST_URI} \.(pdf)$ [NC]
RewriteRule ^(.*)$ /validate.php?filename=$1 [L]

在validate.php中,您可以在get参数文件名中获取所请求的文件名。

答案 1 :(得分:0)

1→创建.htaccess文件(保存文件时将其写入双引号内,如“.htaccess”)。

2→

RewriteEngine On

RewriteRule (.+\.pdf)$ /folder/validate.php?file=$1