2012-05-16 20 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。相同的映射在这里发生,只是相反。

相关问题