如何在显示之前将PDF URL重写为中间跟踪页面

时间:2012-07-13 20:11:16

标签: mod-rewrite

我正在尝试使用设置为原始PDF路径的参数“ref”将PDF网址重写为中间html页面。此中间页面是用于跟踪PDF视图的分析工具。它使用JavaScript记录视图,然后重定向回实际的PDF源URL。

http://www.mydomain.com/dir/some-pdf.pdf应重写为:http://www.mydomain.com/elqNow/elqRedir.htm?ref=http(s)://www.mydomain.com/dir/some-pdf.pdf

基本上规则需要在%{REQUEST_URI},%{HTTP_REFERER}中检查/elqNow/elqRedir.htm,并且'ref'参数需要是完整路径,例如http(s)*://%{HTTP_HOST } / PDF_URL(无法弄清楚如何在不对其进行硬编码的情况下添加http或https。)

这是我到目前为止所创造的一个令人讨厌的循环:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !/elqNow/elqRedir\.htm$
RewriteRule ^(.+\.pdf|PDF)$ elqNow/elqRedir.htm?ref=http://%{HTTP_HOST}/$1 [R=301, L] 

感谢帮助!

1 个答案:

答案 0 :(得分:0)

想出来。检查referer以确保它不是中间HTML页面,防止循环。清理了RewriteRule以捕获格式化的“pdf”文件扩展名。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !elqRedir\.htm
RewriteRule ^(.+\.[pP][dD][fF])$ /elqNow/elqRedir.htm?ref=http://%{HTTP_HOST}/$1 [R=302,L]