0

我正在尝试使用设置为原始 PDF 路径的参数“ref”将 PDF URL 重写为中间 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] 

感谢帮助!

4

1 回答 1

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]
于 2012-07-16T16:11:36.290 回答