2012-07-30 22 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