2012-05-16 17 views
0

我繼承了一個自定義的ColdFusion CMS應用程序。它創建的URL是可怕的。根本不適合搜索引擎優化或可讀性。在此CMS的URL的一個例子是:我可以使用此自定義ColdFusion CMS URL創建一個搜索引擎友好的URL嗎?

http://www.mysite.com/Index2.cfm?a=000003,000010,000019,001335

基本上,分層結構的每一級被存儲在基於逗號分隔值的該長串數據庫。因此,在我使用的示例中,該特定頁面在CMS層次結構中的深度爲4級。

基本上我想看到的是一個格式類似於此

http://www.mysite.com/level-1/level-2/level-3/level-4

這是可能的嗎?任何幫助將不勝感激。我們目前使用ColdFusion 6是值得的,但在不久的將來會升級到8。

+0

簡短的回答是,這是可以做到的。你還應該告訴你正在使用的OS/Web服務器。 Sharondio對Apache有很好的答案,但如果你使用的是Windows/IIS,你需要爲該平臺提供一個答案。 –

回答

1

首先,你願意在URL中擁有index.cfm嗎?像:http://www.mysite.com/index.cfm/level-1/level-2/level-3/level-4?如果沒有,那麼你需要做一個重寫來刪除index.cfm,但仍然允許CF來處理頁面。你的.htaccess會是這個樣子:

RewriteEngine On 

# If it's a real path, just serve it 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule . - [L] 

# Redirect if no trailing slash 
RewriteRule ^(.+[^/])$ $1/ [R=301,L] 

# Rewrite URL paths 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d 
RewriteRule ^([a-zA-Z0-9/-]+)$ /index.cfm%{REQUEST_URI} [PT] 

下一步,你需要「追趕」的網址和服務於基於對SEO友好的URL正確的頁面。您可以從CGI.path_info變量中獲取傳入的URL。很難知道你的代碼應該看起來像不知道它當前如何處理這些URL變量,但基本上你會有一些映射功能,抓住了搜索引擎優化友好的名稱,並取代數字來抓取內容。

第三步是重寫您的CMS生成的任何URL以輸出適合SEO的URL。相同的映射在這裏發生,只是相反。

相關問題