我正在尝试使用设置为原始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]
感谢帮助!
答案 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]