2011-11-15 38 views
0

在OS X Lion和Coldfusion 9開發者版本上運行Apache。我有以下.htaccess文件。 mod_rewrite與OS X Lion上的cfimport(Coldfusion)不兼容

Options +FollowSymlinks
Options +Indexes RewriteEngine on RewriteBase /

RewriteCond %{REQUEST_URI} !=/index.cfm [NC] 
RewriteRule ^([^/]+)/?$ /index.cfm?page=$1 [L,NC] 
RewriteRule ^([^/]+)/([^/]+)/?$ /index.cfm?app=$1&page=$2 [L,NC] 

這是設計來處理像mydomain.com/something和mydomain.com/something/else網址。非常普通的東西。

一切似乎做工精細,直到我打開一個文件與它cfimport標籤,看起來像這樣:

<cfimport prefix="myLib" taglib="/lib/tags">

的RewriteLog表明,這種被拾起和處理,並重定向當然,它打破了一切。

我試着將幾個條件,如:

RewriteCond %{REQUEST_URI} !=lib/tags/ [NC] 
    RewriteCond %{REQUEST_URI} !=lib/tags [NC] 
    RewriteCond %{REQUEST_URI} !=/lib/tags/ [NC] 
    RewriteCond %{REQUEST_URI} !=/lib/tags [NC] 
他們沒有預防的問題。

如果我重新調整目錄,以便我像這樣加載:

<cfimport prefix="myLib" taglib="/lib/dir/tags">
一切都很好。這不是一種選擇,因爲這是一個組開發項目,而我是唯一一個遇到問題並且Windows/IIS是目標部署環境的人。

頂部顯示的基本.htaccess文件似乎在運行Apache的同事Windows機器上工作。

回答

1

我不知道爲什麼/如何使用cfimport導致mod_rewrite觸發 - 它甚至不應該與Web服務器通信。

也許你需要在CF管理員中創建一個/lib映射?


無論如何,你也許可以通過在前面一負向前查找到開始停止你的重寫規則與它擺弄,告訴它忽略lib/tags,就像這樣:

(?!lib/tags) 

把該^爲後第二個表達。

+0

這樣做。我同意這個問題沒有意義,但你解決了它。我會給你的答案投票,但我對這個系統太陌生了。 – smoketx