【问题标题】:URL Rewrite - change URL text between slashesURL 重写 - 更改斜线之间的 URL 文本
【发布时间】:2015-05-24 13:36:43
【问题描述】:

我有这样的网址:

http://www.mywebsite.com/carmake/ABCDEFG/123456789
http://www.mywebsite.com/carmake/AAABBBC/124532532
http://www.mywebsite.com/carmake/BNDFKNV/463634213

我想把它们改成这样:

http://www.mywebsite.com/carmake/parts/123456789
http://www.mywebsite.com/carmake/parts/124532532
http://www.mywebsite.com/carmake/parts/463634213

如何将functions.php中最后一个斜杠之间的文本更改为部分

【问题讨论】:

  • 最后一个斜线之间的字母是否总是大写字母?编辑:NVM 有一个更好的主意。
  • 没有。有各种带有字母、大写字母、数字、连字符等的文本。
  • 这里有什么问题?真的只是简单地替换那些字母吗?如果是这样,那么这个问题已经在 SO 上单独回答了大约 56483937575 次。所有这些答案都没有帮助你?为什么不呢?
  • 到目前为止您尝试了哪些 .htaccess 代码?请提供。

标签: php url rewrite


【解决方案1】:

https://regex101.com/r/sH1wA1/1

<?php

$string      = 'http://www.mywebsite.com/carmake/ABCDEFG/123456789';
$pattern     = '/(.*\/).*\/([^\/]*$)/';
$replacement = '${1}parts/${2}';

    echo preg_replace($pattern, $replacement, $string);
?>

【讨论】:

    【解决方案2】:

    试试这个:

    <?php
    $url = "http://www.mywebsite.com/carmake/ABCDEFG/123456789";
    $parts = parse_url($url);
    $path = $parts['path'];
    $pos = strpos($path, '/', 9);
    $sub = substr($path, 9, $pos - 9);
    $url = str_replace($sub, 'parts', $url);
    

    【讨论】:

      【解决方案3】:

      拆分为段,更改并收集回来

      $a = 'http://www.mywebsite.com/carmake/BNDFKNV/463634213';
      $to = 'parts';
      $s = explode('/', $a);
      $s[count($s)-2] = $to;
      echo implode('/', $s);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-09
        • 1970-01-01
        相关资源
        最近更新 更多