我继承了自定义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。
答案 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。这里发生相同的映射,只是相反。