Php 动态url生成器故障

Php 动态url生成器故障,php,yii,seo,dynamic-url,Php,Yii,Seo,Dynamic Url,我们在Yii 1.1.13上建造场地;是的。 向SEO公司进行SEO检查时,公司得出结论: 找到15000个动态URL“显然不是全部”-我的评论 其中约8000条似乎很长,如下所示: 到目前为止,只有300页在搜索引擎中注册。 其中500个是错误的url或没有响应代码500。ULR是这样的: “在db中重新加载/更新产品组合的最可能原因”-我的评论。 他们指出,第4点的这些故障是动态url生成器故障的原因。 数据库中的产品组合每天动态更新 该公司建议解决动态url生成器问题,或者不使用动态url

我们在Yii 1.1.13上建造场地;是的。 向SEO公司进行SEO检查时,公司得出结论:

找到15000个动态URL“显然不是全部”-我的评论 其中约8000条似乎很长,如下所示: 到目前为止,只有300页在搜索引擎中注册。 其中500个是错误的url或没有响应代码500。ULR是这样的: “在db中重新加载/更新产品组合的最可能原因”-我的评论。 他们指出,第4点的这些故障是动态url生成器故障的原因。 数据库中的产品组合每天动态更新

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

如何修复动态url生成器故障,以及是否可以使用smth。还有其他建议吗

使现代化 到目前为止,Url管理配置已关闭:

// 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参数…

最近为一家商店做了类似的事情

通常您会这样做:

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

2从旧url重定向到干净url

3.利润

至于详情:

最棘手的部分是理解是否可以形成新的url,如果可以,重定向到它。我想你可以用一个有点脏的customUrlRule或者一个我更喜欢的控制器来实现这一点

假设您选择了一个控制器: 在控制器的操作中,确定是否有新的url用户来自。如果有和请求URL==新URL您正在继续控制器逻辑。如果没有,您将重定向到新的url。我想如果

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

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

正在使用创建和处理3个新URL

4在url管理器中,新url的自定义规则和旧url的普通规则具有此优先级

总而言之:

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

请发布您的urlManager配置。@Valentin Rodygin,我已经发布了ulrManagement配置,我建议您在配置中添加'showScriptName'=>false,以使url对SEO更友好。@Valentin Rodygin,我添加了'showScriptName'=>false,但没有发生任何更改。我应该将它与其他htaccess设置一起应用吗?嗯,我在你网站的URL中没有看到index.php。那很好。也许你构建的URL不正确,我觉得还是很难看?r=parameter,你能发布一个createUrl调用的例子吗?