0

我们在 Yii (1.1.13) 上建站;它是汽车零配件店和交易管理引擎。当对 SEO 公司进行 SEO 检查时,该公司得出的结论是:

  1. 找到 15000 个动态网址(“显然不是全部”——我的评论)
  2. 其中约 8 000 个似乎很长,如下所示:http ://tarex.ru/index.php?r=assortment/index&id=1536&Subsystem=Warehouse+automation&Reference=Assortment&Assortment_page=9&Assortment_sort=title.desc
  3. 到目前为止,只有 300 个页面在搜索引擎中注册。
  4. 其中 500 个是错误的 url 或没有响应(响应代码 500)。Ulrs 是这样的: http://tarex.ru/index.php?r=assortment/index&Assortment[groupCategory]=4&Assortment_page=46&Assortment_sort=agroup.desc('最有可能导致分类重新加载/在数据库中更新' - 我的评论) . 他们说这些故障(对于第 4 点)是动态 url 生成器故障的原因。

数据库中的分类每天动态更新。

该公司建议解决动态 url 生成器问题或不使用它来支持用户友好的 URL/SEO 友好的 URL。

如何修复动态 url 生成器故障以及是否可以使用 smth. 其他建议?

更新

到目前为止,网址管理配置已关闭:

// uncomment the following to enable URLs in path-format
    /*
    'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),
    */

当我取消注释时,该站点运行良好,但某些子系统菜单不起作用,原因是绑定到某些 GET 参数...

4

1 回答 1

0

最近为一家商店做了这样的事情。

通常你会这样做:

1) 对于每个动态 url动态地使其成为干净的 url arterative

2)从旧网址重定向到干净的网址。

3) 利润!

现在至于细节:

最棘手的部分是了解是否可以形成新的 url,如果可以,则重定向到它。我认为您可以在 customUrlRule (有点脏)或控制器(我更喜欢)中执行此操作。

让我们假设您选择了一个控制器: 在控制器的 action中,确定是否有新的 url 用户来自。如果有 AND REQUEST URL!==NEW URL,您只是在处理控制器逻辑。如果没有,您将重定向到新的 url。我认为如果

1) 两种 url 类型都由不同的控制器和动作处理,并包括上述逻辑。

2)您正在使用某种方法来提供新旧类型的 url,将相同的参数传递给它们。例如,您可以使用 Yii::app()->createUrl($params) 来创建新类型的 Url,以及一些自定义方法,即 $myModelInstance->createUrl($params)

3) 正在使用自定义 URL 规则构建和处理新 URL

4)在您的网址管理器中,您有新网址的自定义规则和旧网址的普通规则。

总结一下

如果用户从旧的 url 开始,控制器动作就会被执行,并会进行一些额外的检查。我们正在检查是否可以建立一个新的 url,我们还可以检查一些额外的东西,即与一些额外的 seo url 数据库同步,以了解该 url 是否需要重定向。如果可以构建新的 url - 我们将重定向到它。浏览器请求一个请求,该请求使用您的自定义 url 规则进行解析,并执行相应的控制器和操作。

于 2014-10-30T11:03:10.573 回答