0

使用路由器的动态 html 重定向

一开始我没有分类,我所有的页面都是root

例子:

   http://domain/somepage

这很棒,但是随着这些年来我的内容不断增长,我需要对我的内容进行分类

所以我添加了一些路线,见下文 //routes.php

Router::connect(

"/:category/:slug",
array('controller' => 'controllername', 'action' => 'view'),
       array( 

            'name'=>'[-A-Z0-9]+', 

           'pass' => array('category','slug')



          ) 

        );

//结束这很好,完成了我需要做的事情,但是搜索引擎有一个问题。我需要为我的所有链接写 301,我有超过 8K 的页面。

解决方案 cakesphp 的 Router::redirect

我现在遇到的问题是我无法弄清楚如何重定向我的旧链接。例如,我可以将所有链接重定向到一个类别,但这不会削减它。我需要将所有链接重定向到新位置。

我正在尝试使用 routes.php 路由器 :: 重定向

如果我这样做,我的代码会重定向到类别,而不是 slug

   Router::redirect(
'/:slug/*',
  array(
  'pass' => array('category/:slug'))

结果

  http://domain/category/

我怎样才能让蛋糕重定向到

  http://domain/category/slug  ?

  instead of  http://domain/category/

我的所有链接都指向根目录
http://domain/somepage http://domain/anotherpage http://domain/ect

我需要添加类别

`
     http://domain.com/phones/samsung.php
     http://domain.com/books/cakephp.php

`

我不想使用 .htaccees 文件,因为

我的软管提供将我限制为 100 次重定向

我有超过 8K 的链接需要重定向

我正在尝试在 routes.php 文件中使用 cakes 路由器 ::redirect 功能。

下面的代码仅适用于一个类别,它不会像我想要的那样动态地执行它。我尝试创建一个路由器类,可以按照您的建议为我执行此操作,但老实说,我不是 cakephp 专家。它易于学习并且是一个很棒的框架,我只是还不知道如何制作自己的类或组件。我只是还没有找到好的文档来做到这一点。

 //routes.php

  $move='category/'. stripslashes_deep ($_SERVER['REQUEST_URI']);             Router::redirect('/:slug/*',$move, array('status' => 302)); code
4

1 回答 1

0

您最好的选择是使用自定义路由类。

自定义路由扩展了 CakeRoute 类,并允许您返回/添加/修改传递过来的参数。

CakePHP 自定义路由类 - 如何传递参数?

于 2012-09-26T19:11:52.970 回答