2012-07-30 21 views
1

当某人访问example.pdf时,他们被重定向到viewer.php。 viewer.php应该能够访问pdf文件。但是,.htaccess文件导致viewer.php文件无法访问pdf,因为重定向并被陷入循环。.htaccess是否允许使用自己的主机?

有没有一种方法来添加以下逻辑为.htaccess:

如果(主机= MYSERVER)
         没有自动跳转PDF
其他
         重定向PDF to viewer.php

谢谢

这是我的htacces文件。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.+)\.pdf$ web/viewer.php?pdf=$1 [L,NC,QSA] 
AddType application/octet-stream .pdf 
+0

您是否尝试过搜索? – madfriend 2012-07-30 22:04:09

回答

1

编辑:我已经看到了在图书馆源,这是不是你的服务器发出请求到PDF,这是这将是一个客户端请求不幸的JavaScript,因此这将不会就像我想你所希望的那样容易! (即你不能只检查127.0.0.1,因为它将是用户的IP地址)。

我不确定它如何正常工作,但一个选项可能是更新所有的PDF文件,为文件扩展名增加一个额外的字符(所以不是.pdf,而是.pdf或类似的文件)。

RewriteRule ^(.+)\.pdf$ web/viewer.php?pdf=$1s [L,NC,QSA] 

这是假设pdf.js脚本能够呈现文件,而不.pdf扩展名:然后您可以更新您的重写规则的$喜欢打完添加一个“s”。


尝试这样:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REMOTE_ADDR} !^127.0.0.1$ 
RewriteRule ^(.+)\.pdf$ web/viewer.php?pdf=$1 [L,NC,QSA] 
AddType application/octet-stream .pdf 
+1

顺便说一下,我假设您的脚本正在执行'file_get_contents'来加载文件(通过HTTP),最好使用'fopen'并将本地文件的内容推送到Web浏览器。 – williamvicary 2012-07-30 22:11:37

+0

谢谢,但我仍然遇到麻烦。我是否需要更改此htaccess文件的任何部分以使其适用于我?我使用pdf.js库(http://mozilla.github.com/pdf.js/),它工作正常,直到我使用redirectengine(假设无限循环) – user1530249 2012-07-30 22:24:41

+0

尝试我的更新版本,我已添加301重定向如果有效的话。我不会认为这将是无限循环,但我想这取决于pdf.js源代码。 – williamvicary 2012-07-30 22:51:40