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

从url中删除尾随点

  •  1
  • Meep3D  · 技术社区  · 14 年前

    我有一个网址- http://callisto/news/1st_February_is_here... -它有三个尾随点,但当它通过mod_rewrite并到达脚本时(以$_get为单位),这些点已经被删除(但字符串的其余部分是可以的)。

    这是htaccess规则:

    RewriteRule ^([^/]+)/(.*)$ index.php?__action=site&__filter=$1&__page=$2 [L,QSA]
    

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Shane    14 年前

    我认为你在使用一篇文章的标题或者类似于uri中的第三个位置。由于使用此方法可能会有许多其他“中断”字符通过uri,因此我建议您在将标题附加到uri之前清除标题,并将相同的已清除字符串放入数据库以供参考。

    删除任何不是字母数字的字符,并用连字符“-”替换空格——这将确保您不会混淆行下的任何内容,也不会遇到任何浏览器特定的问题,从而使您的uri无法工作。

    $title = '1st February is here...';
    $clean_title = preg_replace('/[^a-zA-Z0-9\s]/', '', $title);
    $finished_title = str_replace(' ', '-', $clean_title);
    

    运行代码库将清除你的标题。

    http://callisto/news/1st_February_is_here...
    

    应该变成:

    http://callisto/news/1st-February-is-here
    

    或者类似的东西。我建议使用连字符而不是下划线的唯一原因是,有时我在uri中传递下划线时遇到问题。

    另外,我想你会发现这是WordPress使用的方法——很可能与你看到这个问题的原因相同。

    GL!