url rewright - 如何从网址和流程中选择一个单词

时间:2016-02-05 11:56:58

标签: php url url-rewriting

我想像下面提到的那样怀疑

来自:www.example.com/products/abc12345-aaa-bbb-ccc.html 要:www.example.com/products.php?id = abc12345

你可以来自"来自"地址是从用户请求 和"到"地址是实际链接 我该如何选择第一个单词" abc12345"从第一个链接,并应用于第二个链接 我的网站是基于php和mysql 任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

假设:

  • "来自"的相关部分网址始终以" / products /"。
  • 结尾
  • 产品ID是一系列非特殊字符,数字和下划线。

代码

PHP脚本:

<?php
    $fromurl = '     http://www.example.com/products/abc12345-aaa-bbb-ccc.html';
    $tourl = preg_replace('%([^\s]*?/products)/([A-Za-z0-9]*?)([^A-Za-z0-9])%i', "\r\n\$1.php?id=\$2", $fromurl);
    if (preg_match('%([^\s]*?/products)/([A-Za-z0-9]*?)([^A-Za-z0-9])%i', $fromurl, $regs)) {
        $tourl = $regs[1] . '.php?id=' . $regs[2];
    } else {
        $tourl = "";
    }
    echo $tourl . '<br />';
?>

.htaccess文件(→未测试)

RewriteRule ^(.*)products/([A-Za-z0-9]+)(.*) $1/products.php?id=$2  [NC,L]

结果

  

from