从url中删除.php扩展名。但在最后一个值之前

从url中删除.php扩展名。但在最后一个值之前,php,Php,我有一个url,即。我必须从url中删除.php 以及我需要的url,即您可以使用str_replace php函数 $url = "http://searchberry.co/search.php/2731804/?query=admin"; $str = str_replace(".php", "", $url); echo $str; 有关此函数的一些文档 编辑 试试这样的 其他人建议使用str_replace,但这将删除.php的每个实例,如果查询是?query=lol.php,

我有一个url,即。我必须从url中删除.php


以及我需要的url,即

您可以使用str_replace php函数

$url =  "http://searchberry.co/search.php/2731804/?query=admin";

$str = str_replace(".php", "", $url);
echo $str;
有关此函数的一些文档

编辑 试试这样的


其他人建议使用str_replace,但这将删除
.php
的每个实例,如果查询是
?query=lol.php
,会发生什么?查询将被编辑为
query=lol
,不幸的是str\u replace似乎不支持限制,但preg\u replace支持限制。

我建议您阅读apache mod\u rewrite()

在路由文件夹中创建.httpaccess,并根据根目录添加以下行

<Directory "/var/www/htdocs">
   RewriteEngine on
   RewriteBase "/var/www/htdocs"
   RewriteRule ^search/([-\w]+)/$ search.php/([-\w]+)/$1 [NC,L]
</Directory>

重新启动发动机
重写库“/var/www/htdocs”
重写规则^search/([-\w]+)/$search.php/([-\w]+)/$1[NC,L]

您可以使用
str_replace('.php','$url)好的,先生,但是search.php是一个文件名。url是actionoth的形式,这将删除“.php”的每个实例,如果查询是
?query=lol.php
,会发生什么?查询将被编辑为
query=lol
-您应该为其添加一个限制it@hanshenrik fixed@RahulKumat照你说的做了,先生
$url=preg_replace("/\.php/","",$url,1);
<Directory "/var/www/htdocs">
   RewriteEngine on
   RewriteBase "/var/www/htdocs"
   RewriteRule ^search/([-\w]+)/$ search.php/([-\w]+)/$1 [NC,L]
</Directory>