2012-02-02 63 views
12

我有一個名爲/pdf/的結構,其中存儲生成的PDF。我正在嘗試使用.htaccess將訪問者路由到PDF文件夾。.htaccess for PDF URL

我有這樣的規則在我的.htaccess文件:

RewriteEngine On 
RewriteBase/
RewriteRule (.*) index.php?page=$1.html 
RewriteRule ??? for pdf?? 

(注意???馬克...)

當我嘗試訪問的URL /manual_chap_1這是工作。但是,當我嘗試/pdf/manual_chap_1它似乎並沒有工作。下面是一些輸出我看到:

$_GET[page] => index.php.html

我希望能夠生成PDF文件,如果PDF文件不被請求的位置中存在,然後,我希望它加載HTML頁面。

回答

12

歡迎StackOverflow的,試試這個:

RewriteEngine On 
RewriteBase/

RewriteRule ^pdf/([a-z0-9\-_\.]+)$ pdf.php?file=$1 [L,NC,QSA] 

RewriteCond %{REQUEST_URI} !^/pdf 
RewriteRule ^([a-z0-9\-_\.]+)/?$ index.php?page=$1.html [L,NC,QSA] 

L:的[L]標誌使mod_rewrite的停止處理規則集。在大多數情況下,這意味着如果規則匹配,則不會處理更多規則。這對應於Perl中的最後一個命令或C中的break命令。使用此標誌來指示當前規則應立即應用,而不考慮其他規則。

QSA:當替換URI包含查詢字符串時,RewriteRule的默認行爲是放棄現有的查詢字符串,並將其替換爲新生成的查詢字符串。使用[QSA]標誌會導致查詢字符串被合併。

NC:使用[NC]標誌會導致RewriteRule以不區分大小寫的方式進行匹配。也就是說,它不關心在匹配的URI中字母是大寫還是小寫。

此外,我會建議使用破折號而不是下劃線。

+0

很多很多很多謝謝 – Maggie 2012-02-02 00:14:34

+0

非常歡迎 – 2012-02-02 00:17:22