regex - codeigniter 301 使用路由器重定向旧 url 并且没有重定向

标签 regex .htaccess codeigniter mod-rewrite redirect

我有一个 codeigniter 网站,我正在为它做 SEO,所以问题是大部分 url 都缓存在搜索引擎中,我的旧 url 是什么

/product/details/productname/productid

我的新网址将是
/tours/cityname/productname

我希望我的旧网址使用 301 重定向到新网址,而新产品网址不要使用 301 重定向,因为它们是新的并且将具有相同的网址结构,因为我在 codeigniter 网站上搜索有关 router.php 中的网址路由,这给出了一个重定向的例子
$route['product/(:num)'] = "catalog/product_lookup_by_id/$1";

我认为这是我可以进行更改的地方,但是我如何通过使用 header 以这种模式执行 301 或者是否有更好的方法来执行此操作?

最佳答案

我最近面临着非常相似的情况。
为了从 Google 和链接站点的所有结果中保存 404,我保留了旧路由,但将其指向了一个新的 Controller /功能。 Theis 函数管理 301 重定向。

    public function oldurl_to_newurl()
    {
          $newURL = LogicToGetNewURL
          redirect($newURL,'location',301);
    }

使用旧 URL 中的段,我查询数据库(如果需要)并创建新 URL。然后它相应地重定向用户。这是我还能够跟踪我的分析的一些指标。

关于regex - codeigniter 301 使用路由器重定向旧 url 并且没有重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172058/

相关文章:

javascript - 正则表达式最多允许 10 位数字,后跟一个逗号和另外 3 位数字

c++ - std::regex 的编译时构建

python - 将字符插入字符串到数字末尾

php - 使用现有 ISBN 和 PHP 的书籍封面

php - 管理 CodeIgniter 中的 "A Database Error Occurred"1062 错误

php - jquery - 使用 session 电子邮件地址预填充 php 文本字段

regex - 与正则表达式中的开始/结束对字符匹配

php - 使用变量子目录重写 URL 不起作用

.htaccess - HTaccess 如何重定向多个 URL?

apache - htaccess - 拒绝来自未授权域的请求