2011-10-19 52 views
0

感謝您的幫助;我是新來的所有這個URL映射,但我相信這是一個簡單的問題...如何使用.htaccess將絕對URI路徑從「/xxx/some.file」映射到「/something/xxx/some.file」

我正在從GoDaddy(誰最近放棄他們的ColdFusion支持)遷移ColdFusion應用程序到CFDynamics

我有我的新根的URL:cfd123.cfdynamics.com/lbc這是我的wwwroot目錄,我把網站。 (其實是:D:\ Inetpub \ wwwroot \ lbc.com \ wwwroot,但我認爲不重要)

問題是所有的HTML URIs:href和src屬性等都寫在網站中使用絕對路徑:「/images/some.jpg」等,現在我想讓它們映射到「cfd123.cfdynamics.com/lbc/images/some.jpg」。

我想我需要映射「/東西」到「/ lbc/something」的地方。這看起來應該很簡單,只需將一個前導「/」映射到「/ lbc /」,我就可以走了。

所以,我去創建一個「Alias// lbc /」列表並將其放入我的.htaccess文件中。現在我發現在.htaccess中不允許使用別名。 (我想如果我有權訪問httpd.conf,我可以在那裏使用Alias,但它是一個共享主機環境,我沒有那個訪問權限。)

所以,我想我會嘗試重寫規則(仍然在.htaccess文件中):

RewriteEngine on 
RewriteBase /lbc 
RewriteRule ^/(.*)$ /$1 [L,R=301] 

無濟於事。所以,我沒有發現任何明顯的事情都有效(我甚至不確定我是否正確地做了這些事情)。我沒有看到任何調試機制向我展示任何東西(chrome只是向我展示了當文件未找到時會出現的404錯誤)。

這對我來說都是新的,並且開始變得漂亮多毛快速。任何人都可以指引我正確的方向嗎?

謝謝,史蒂夫

p.s.我可以通過在wwwroot目錄中創建Application.cfc文件來處理ColdFusion CFInclude指令,該文件包含下面的代碼,但對整個頁面中的各種HTML鏈接不做任何處理。

<cfset this.name = "AbsoluteReference"/> 
<cfset this.mappings = structNew() /> 
<cfset this.mappings["/"] = getDirectoryFromPath(getCurrentTemplatePath())/> 
+1

這不是一個編程問題。它可能會更適合[SF]。儘管你接近錯誤了。停止使用絕對路徑 - 如果你使用'。/ images',那麼你就沒有這個問題 - 而且當你得到你正確的域名設置時,你不需要再次切換(cfd123的東西可能只是暫時的,而不是你的網站的最終安息之地)。 –

+0

對不起,如果服務器故障是一個更好的地方,我會牢記。 我同意絕對路徑......但這些都是我處理的牌,並將它們都修改爲相對路徑是醜陋的。 而且,我是這個託管服務提供商的新手,以及他們是如何工作的。結果他們解析主機頭將流量路由到正確的webroot;所以,一旦我將域名上的DNS條目指向它們,而不是直接用cfd123域進行測試(這不是暫時的,它只是不會被使用),那麼一切都按預期工作。所以,我沒有任何進一步的工作解決。 謝謝。 – user1004136

回答

0

你運行在CFDynamics一個Windows服務器,我可以從這個

告訴我有一個網址爲我的新根:cfd123.cfdynamics.com/lbc這是我的wwwroot目錄,我已經把網站。 (它實際上是:d:\的Inetpub \ wwwroot的\ lbc.com \ wwwroot的,但我不認爲事情)

這是一個窗口結構 「d:\的Inetpub \ wwwroot的\ lbc.com \ wwwroot的」所以.htaccess將不能用於URL重寫,因爲您在共享環境中無法做到您需要的功能。這些更改必須在IIS中進行,這不是一種選擇。如果您有Dreamweaver,則可以使用/ images /替換爲/ ibc/images /,然後替換爲href =「/ ibc /」。

希望這會有所幫助。

+0

謝謝約翰。我知道並理解你對Windows服務器的看法。他們的支持告訴我他們支持.htaccess。多一點挖掘,我發現他們通過IIRF(http://iirf.codeplex.com/)這樣做IIS的重寫過濾器插件。 是的,修改整個網站的所有代碼是一種可能性,但是我希望避免它,因爲一切都很好用,並且總是有可能引入錯誤,錯過等等。重寫等操作似乎更容易。 – user1004136

相關問題