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


Auto run a file before handling http call made via URL

只是想看看这是否可能。

当我通过浏览器调用http://localhost/TEST/folder_validation/1.pdf时,验证.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/..............

验证.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]

试试

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

在验证中.php您可以在 get 参数文件名中获取请求的文件名。

1-> 创建一个 .htaccess 文件(保存文件时将其写在双引号内,如".htaccess")。

2->

RewriteEngine On
RewriteRule (.+'.pdf)$ /folder/validate.php?file=$1