代码之家  ›  专栏  ›  技术社区  ›  ewall

你能重写数学吗?

  •  4
  • ewall  · 技术社区  · 15 年前

    问题是,我的新博客不会有与旧博客相同的文章编号,因为我会在它们的第一篇文章中导入一些旧的博客条目。因此,我的mod\u重写需要像 old.php?article=125 ,进行加法以计算出新的文章编号(例如+200),并重定向到 new.php?i=325 .

    mod\u rewrite能自己做加法吗,或者我需要某种“助手”脚本来做吗?

    4 回复  |  直到 15 年前
        1
  •  2
  •   Sjoerd    15 年前

    它不会做数学。也许你想用 rewrite map .

        2
  •  3
  •   Jürgen Steinblock    15 年前

    rewriteRule /article=(\d{1})$ /new.php?i=100$1
    rewriteRule /article=(\d{2})$ /new.php?i=10$1
    rewriteRule /article=(\d{3})$ /new.php?i=1$1
    
        3
  •  2
  •   Álvaro González    15 年前

    一个选择是完全忘记你的网站中的旧链接 .htaccess 文件。相反,构建一个自定义 404 Not Found $_SERVER['REQUEST_URI']

    <?php
    
    if( substr($_SERVER['REQUEST_URI'], 0, 7)=='old.php' ){
        // Old link found!
    }
    
    ?>
    

    在“发现旧链接”条件内,可以进行进一步处理:

    1. 运行正则表达式以查找项目ID
    2. 算算一下,试着用一个新的身份证来匹配它
    3. 使用header()执行永久重定向
        4
  •  0
  •   Josh K    15 年前

    我相信这就是所谓的“伏都教魔法” mod_rewrite . 我要么设计一个助手脚本来跟进这个过程,要么在数据库级别实际迁移旧条目。

    应该 完美贴合。

    推荐文章