【问题标题】:Can I create a search engine friendly URL from this custom ColdFusion CMS URL?我可以从这个自定义 ColdFusion CMS URL 创建一个搜索引擎友好的 URL 吗?
【发布时间】:2012-05-16 15:32:29
【问题描述】:

我继承了一个自定义 ColdFusion CMS 应用程序。它创建的 URL 非常可怕。根本不适合 SEO 或就此而言的可读性。此 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。

【问题讨论】:

  • 简短的回答是可以做到这一点。您还应该告诉您正在使用什么操作系统/网络服务器。 Sharondio 为 Apache 提供了一个很好的答案,但如果您使用的是 Windows/IIS,您将需要该平台的答案。

标签: iis coldfusion url-rewriting coldfusion-6


【解决方案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]

下一步,您需要“捕捉”这些 URL 并根据对 SEO 友好的 URL 提供正确的页面。您可以从 CGI.path_info 变量中获取传入的 URL。在不知道代码当前如何处理这些 URL 变量的情况下,很难知道您的代码应该是什么样子,但本质上,您将拥有某种映射函数,该函数可以获取对 SEO 友好的名称并替换为数字以获取内容。

第三步是重写您的 CMS 生成的所有 URL,以输出对 SEO 友好的 URL。同样的映射在这里发生,只是相反。

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 2011-02-15
    • 2011-08-31
    • 2021-06-12
    • 2010-11-12
    • 1970-01-01
    • 2014-04-26
    • 2013-10-16
    • 1970-01-01
    相关资源
    最近更新 更多