2014-02-13 51 views
1

在Coldfusion中,我們有三個文件來控制我們的類別。Coldfusion Dynamic Directory

subcat.cfm level1 subsubcat.cfm level2 results.cfm level3 

我們希望下面的結構oursite.co.uk/level1/,oursite.co.uk/level1/level2/,oursite.co.uk/level1/level2/level3/

我已經開始在mod_rewrite中設置規則,但當然當訪問頁面oursite.co.uk/level1/時,由於所有內容都基於根目錄進行定位,因此無法找到images和css文件。

我們的第一個重寫規則是這樣的

RewriteRule ^([^/]+)/$ /SubCat.cfm?catname=$1 [NC,L] 

所以是有可能獨自實現這一目標使用Apache的mod_rewrite或將ColdFusion的一些操作要求?

回答

1

您可以使用RewriteCond排除網頁你不想:

RewriteCond %{REQUEST_URI} !^/(images|css|favicon\.ico|robots\.txt) 

把它放在它適用於重寫規則上面的線,並且該重寫規則匹配,那麼將針對被檢查的任何請求先前的RewriteCond確定是否應該發生重寫。
(這聽起來裏面出來,但它可以是有用的,知道條件是規則的圖案後進行檢查。)


!在模式的開始否定的條件,因此,如果請求URI(主機名和端口之後的部分)以/images/css/favicon.ico/robots.txt開頭,它不會被該規則重寫。

+0

嗨@ peter-broughton感謝您的幫助 - 再次!我已經在上面的重寫規則之前嘗試了rewritecond規則,但不幸的是,css和格式仍然不起作用。我是否需要將所有內容都改爲絕對路徑? – matthew

+0

你不應該需要絕對路徑(瀏覽器會自動執行)。檢查螢火蟲/開發工具的網絡選項卡,瞭解正在請求/接收的內容。 –

+1

你不應該需要絕對路徑,但這就是爲什麼我總是使用web根目錄的絕對路徑。它避免了這樣的問題。 –