Friendly URL with Apache Mod-Rewrite



我已经读了一段时间了,我很接近,但正在努力克服最后一道障碍。

我有一个这样的网址:site.com/detail/123/some-description/maybe-some-description

我想成为

site.com/details.php?id=123

到目前为止,我有这个

RewriteRule detail/(.*)/.*$ details.php?id=$1

根据这个(https://htaccess.madewithlove.be/)中的结果

details.php?id=123/一些文本

我该如何去掉末尾的一些文字?

试试这个:

  • 正则表达式:(.*?detail)/(d+)/.*
  • 替换:$1.php?id=$2

这导致site.com/detail.php?id=123

它们都可以在Regex101进行测试。

  • (.*?detail)将站点基本URL与details匹配,并捕获到组$1
  • /与斜杠本身匹配(必须转义(
  • CCD_ 8匹配该号码并将其捕获到组CCD_
  • /.*与URL的其余部分匹配,并且不将其包含在替换中会有所帮助

编辑:你介意detaildetails之间的区别吗?

在您的情况下,似乎您还有一组/text/

更改您的规则:RewriteRule detail/(.*)/.*$ details.php?id=$1

RewriteRule detail/(.*)/(.*)/.*$ details.php?id=$1

如果您不知道有多少斜线,您可以使用排除斜线的组[^/]*:

RewriteRule detail/([^/]*)/.*$ details.php?id=$1

RewriteRule^([A-Za-z0-9]+($file.php?密钥=$1[L,QSA]

用于锚定标签

<a href="details/<?php $id?>">

如果您希望接收变量$value=$_REQUEST['key']中的值;

相关内容

  • 没有找到相关文章

最新更新