我可以从此自定义ColdFusion CMS URL创建搜索引擎友好的URL吗?

时间:2012-05-16 15:32:30

标签: iis coldfusion url-rewriting coldfusion-6

我继承了自定义ColdFusion CMS应用。它创建的URL是可怕的。根本不适合搜索引擎优化或可读性。此CMS中的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。

1 个答案:

答案 0 :(得分: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友好的网址提供正确的网页。您可以从CGI.path_info变量中获取传入的URL。很难知道你的代码应该是什么样子而不知道它当前如何处理这些URL变量,但实际上你有一些映射函数可以抓住SEO友好名称并用数字代替来获取内容。

第三步是重写CMS生成的任何URL,以输出SEO友好的URL。这里发生相同的映射,只是相反。