我已经读了一段时间了,我很接近,但正在努力克服最后一道障碍。
我有一个这样的网址: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的其余部分匹配,并且不将其包含在替换中会有所帮助
编辑:你介意detail
和details
之间的区别吗?
在您的情况下,似乎您还有一组/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']中的值;