【问题标题】:Dynamic URL rewriting using codeigniter/php/htaccess when change in url更改 url 时使用 codeigniter/php/htaccess 重写动态 URL
【发布时间】:2017-12-06 14:52:10
【问题描述】:

我有类似 base_url()/controller/rowtitle-rowid 的 URL。

使用函数操作此 URL 并根据数据库中的行排列。

如上所述,当我更改 URL 中的 rowid 时,我需要更改整个 URL,这意味着它应该重写为数据库中特定行的 id。

例如:

考虑以下网址

  1. https://www.marketsandmarkets.com/Market-Reports/medical-device-testing-market-254474064.html

2.https://www.marketsandmarkets.com/Market-Reports/timing-relay-market-241993160.html

如果我将 2 号 URL 中的粗体数字更改为 1 号 URL 中的粗体数字,那么它会将 URL 重写为 1 号 URL 并重定向到 1 号 URL

这可能吗?

提前致谢。

【问题讨论】:

    标签: php .htaccess codeigniter url


    【解决方案1】:

    您说您正在修改rowid,我认为这是您在1,2 语句中加粗的数字,同时您想重定向到不同的slug 和rowid,这是虚线语句在网址末尾的rowid 之前,例如some-page-name.

    我不确定rowid 与任何事情有什么关系,也许它只是一个随机 int 以确保您没有重复的 slug,但只要您增加标题,它就不是严格要求的如果您有 some-page-namesome-page-name-1 之类的重复项。

    在 PHP 和 codeigniter 中,只要您保留一个包含 slug 的所有迭代的数据库,您尝试做的事情确实是可能的。然后在您的Market-Reports 控制器中,您只需查找slug 的最新迭代并将其作为用户链接。或者,如果用户来自搜索引擎,则在说 Market-Reports 单页控制器到 timing-relay-market-241993160 时,您查询 rowid = 'someid' 所在的数据库并按 created 或其他东西排序,然后将用户重定向到那个会是medical-device-testing-market-254474064.

    此外,如果您用于跟踪 slug 的数据库表具有以下行 rowidrowtitlefullslug,您实际上可以使用 intval() 从 fullslug 中获取 rowid 并执行相同的类型就像我在上一段中概述的那样。

    注意:您不能对静态 HTML 页面执行此操作。我假设因为您标记了 PHP 和 codeigniter,您正在使用 php 和控制器。

    【讨论】:

    • 嗨@alex 感谢您的回复,但是当您说 rowid 只是一个随机数而 rowid 是表中该行的主键时,我并没有清除它。根据这个 rowid 我需要将整个 URL 更改为 www/base_url/controller/rowtitle1-rowid1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2014-07-09
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多