我想知道如何在使用mod_Rewrite的時候得到「真實」請求的URL。在我的htaccess文件中有幾個用於緩存目的的重寫規則:首先檢查是否存在緩存文件。如果是這樣,請求將被重寫到緩存文件。否則,請求將被重寫爲一個php-script,它創建這個緩存文件。如何在使用mod_rewrite的時候得到真正的請求
但我懷疑,規則不符合我希望他們。是否有可能跟蹤「真實」請求查看,客戶端請求了哪個URL以及後臺請求哪個文件?
在此先感謝。
我想知道如何在使用mod_Rewrite的時候得到「真實」請求的URL。在我的htaccess文件中有幾個用於緩存目的的重寫規則:首先檢查是否存在緩存文件。如果是這樣,請求將被重寫到緩存文件。否則,請求將被重寫爲一個php-script,它創建這個緩存文件。如何在使用mod_rewrite的時候得到真正的請求
但我懷疑,規則不符合我希望他們。是否有可能跟蹤「真實」請求查看,客戶端請求了哪個URL以及後臺請求哪個文件?
在此先感謝。
您可能需要%{THE_REQUEST}
特殊變量。 mod_rewrite docs這樣說:
瀏覽器向服務器發送的完整HTTP請求行(例如「GET /index.html HTTP/1.1」)。這不包括瀏覽器發送的任何附加標題。與以下大多數其他變量不同,此值尚未未轉義(解碼)。
所以,如果有人進入http://your-domain/path/file.html到他們的瀏覽器,你的網絡服務器重寫/path/file.html成完全不同的東西,在%{} THE_REQUEST變量仍然會GET /path/file.html HTTP/1.1
,或者類似的東西。
至於什麼請求終於得到了改寫,你可以啓用日誌記錄改寫,看看它是什麼:
RewriteLog /some-path/rewrite.log
RewriteLogLevel 9
這會去你的虛擬主機配置和僅用於調試目的。 rewrite.log文件將包含重寫過程和最終URI的詳細信息。
RewriteLog聽起來不錯,但據我所知,沒有可能通過.htaccess運行。 Unfortunatley我無法訪問httpd.conf或其他配置文件。 – Phil
只是一個模糊的內存......我想你可以使用mod_rewrite設置一個變量,稍後可以使用它。或者,有一個代表原始請求的內建變量。對不起,不記得清楚,但建議你閱讀手冊(長篇朗誦,但有幫助) – gahooa