apache 我如何知道我的网站上哪些静态页面正在被访问?

rta7y2nd  于 2022-11-16  发布在  Apache
关注(0)|答案(2)|浏览(174)

我如何知道哪些静态页面在我的网站被访问?静态页面我的意思是PDF的大部分。
我使用Apache和PHP。

fae0ux8s

fae0ux8s1#

你需要查看你的apache配置。它将指定你想查看的日志文件的位置。
我相信默认位置是/var/log/apache2,一旦在那里,你可以用tail -f access.log之类的东西真实的监控流量,或者你可以处理日志文件,以了解资源的点击率。

ev7lccsx

ev7lccsx2#

假设您在Xampp(优选的Windows,因为确保cmod写权限是打开的)中具有文件夹0并且您可以访问http://localhost/0/,因为服务器是打开的,
假设您使用如下链接访问每个pdf文件:
http://localhost/0/file1.pdf
http://localhost/0/file2.pdf
假设您的php.ini设置允许运行error_log函数
您有这些文件**.htaccess**

RewriteEngine On
RewriteBase /0/
RewriteRule ^.*\.pdf$ ?countfile=$0 [R=301,L,QSA]

# i'm not so pro with .htaccess so i used work based on
#https://stackoverflow.com/questions/10949685/htaccess-redirect-file-type
#https://stackoverflow.com/questions/1231067/htaccess-rewrite-for-query-string
#https://stackoverflow.com/questions/20439192/rewrite-url-relative-to-current-directory

索引.php

<?php
    isset($_REQUEST['countfile'])and error_log($_REQUEST['countfile']."\r\n",3,'logpdf.txt');
    header('');
    //include($_REQUEST['countfile']);
    header("Content-type:application/pdf");
    header("Content-Disposition:inline;filename='".$_REQUEST['countfile']);
    readfile($_REQUEST['countfile']);
?>

结果.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="CustaRoolez">
<title>just for fun</title>
</head>
<body>
<?php
if(file_exists('logpdf.txt')){
    $files=file('logpdf.txt');
    $statistics=array_count_values($files);
    foreach($statistics as $file => $cnt){
        echo 'the file: '.$file.' was accesed by'.$cnt.' times<br>';
    }
}
?>
</body>
</html>

那么应该是最快的自定义方法日志访问统计来计算PDF访问文件
https://www.real-domain-whaterver.extension.htaccess上可能是这样的(你应该设置路由,不是自动的),所以对于https://www.real-domain-whaterver.extension/ <---- '/'

RewriteEngine On
RewriteBase /
RewriteRule ^.*\.pdf$ ?countfile=$0 [R=301,L,QSA]

请记住,您应该拥有在真实的公共域上编写内容的权限,您可以在index.php中进行修改

error_log($_REQUEST['countfile']."\r\n",3,'logpdf.txt');

error_log($_REQUEST['countfile']."\r\n",3,'/someFOLDERtoLOG/logpdf.txt');

结果。php

if(file_exists('logpdf.txt')){
    $files=file('logpdf.txt');

if(file_exists('/someFOLDERtoLOG/logpdf.txt')){
    $files=file('/someFOLDERtoLOG/logpdf.txt');

并确保创建someFOLDERtoLOG并设置cmod 775,或者验证是否已创建(取决于管理员设置)

相关问题