Php htaccess重写只在第一次工作

Php htaccess重写只在第一次工作,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我面临的问题是: 当我点击表单中的提交按钮时,操作被设置为相对路径。 我第一次按下按钮时,rewrite htaccess为我提供了一个完美的URL 但当我再次点击它时,它给我带来了错误的URL 例如: 首先,这是我的htacces文件: Options -MultiViews RewriteEngine On RewriteBase /public RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{R

我面临的问题是:
当我点击表单中的提交按钮时,操作被设置为相对路径。 我第一次按下按钮时,rewrite htaccess为我提供了一个完美的URL 但当我再次点击它时,它给我带来了错误的URL

例如:

首先,这是我的htacces文件:

    Options -MultiViews
    RewriteEngine On

    RewriteBase /public

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
这就是我想要的:

www.example.dev/public/controller/method/params
重写为我提供了一个完美的URL,以便我可以提取:
1-控制器
2-具有两个参数的正确方法。
我让它工作了。

但当我有以下代码时:

    <form class="fomulier" action="controller_example/method_example"  method="post">
      <div class="search">
         <label for="search" class="title">Search:</label><br/>
         <input type="text" id="search" name="search" value=""/>

         <input type="submit" value="Search">
     </div>
   </form>

搜索:
www.example.dev/public/controller\u example带我进入表单。
然后,当我点击(提交)按钮时,它会将我带到:
www.example.dev/public/controller\u example/方法\u示例
完美正是我想要的。
现在我回到表单,一个methode(method\u示例)已经过去了

但是当我再次点击提交按钮时,它失败了。
我现在得到的URL是:
www.example.dev/public/controller\u example/controller\u example/method\u example
然后再次点击:
www.example.dev/public/controller\u example/controller\u example/controller\u example/method\u example

等等

所以我被困在这里了,没办法,有人吗


ps:我为我的英语不好而道歉,我是荷兰人。

问题解决了:
有时候比你想象的要容易

我描述的上述问题不起作用的原因是:
只需我的第一个显示发件人侦听的URL,
www.rsmk.dev/public/controller\u示例但事实是:
www.rsmk.dev/public/controller_example/index.php

现在,当我点击提交按钮时,表单action=“controller\u example/method\u example”为我提供了以下URL:
www.rsmk.dev/public/Controller_example/方法_example
到目前为止,这正是我想要的。
(它将我带到同一个页面,因为my routing.php只接受一个数组
www.rsmk.dev/public/Controller\u example/method\u example我的方法为我提供了查看页面)。 因此,当我再次点击它时,表单action=“controller\u example/method\u example”现在为我提供了以下url:
www.rsmk.dev/public/controller\u example/controller\u example/method\u example
错了
再次点击它会给我以下提示:
www.rsmk.dev/public/controller\u example/controller\u example/controller\u example/method\u example
等等因为我的方法每次只会让我看到一个不同的URL(每次点击后,它会随着controller\u example的增加而增加)
所以实际上,相对路径永远不会起作用

我尝试了一个绝对路径,每次点击submit都会得到相同的结果。 ???????
这就是我认为它一定是htaccess文件的原因。
在manny吃了一顿,在这里搜索和询问了几个小时后。
我终于明白了问题所在。
当我忘记http://

羞耻


manny感谢revo帮了我的忙看起来你的第一个答案是正确的

问题解决了:
有时候比你想象的要容易

我描述的上述问题不起作用的原因是:
只需我的第一个显示发件人侦听的URL,
www.rsmk.dev/public/controller\u示例但事实是:
www.rsmk.dev/public/controller_example/index.php

现在,当我点击提交按钮时,表单action=“controller\u example/method\u example”为我提供了以下URL:
www.rsmk.dev/public/Controller_example/方法_example
到目前为止,这正是我想要的。
(它将我带到同一个页面,因为my routing.php只接受一个数组
www.rsmk.dev/public/Controller\u example/method\u example我的方法为我提供了查看页面)。 因此,当我再次点击它时,表单action=“controller\u example/method\u example”现在为我提供了以下url:
www.rsmk.dev/public/controller\u example/controller\u example/method\u example
错了
再次点击它会给我以下提示:
www.rsmk.dev/public/controller\u example/controller\u example/controller\u example/method\u example
等等因为我的方法每次只会让我看到一个不同的URL(每次点击后,它会随着controller\u example的增加而增加)
所以实际上,相对路径永远不会起作用

我尝试了一个绝对路径,每次点击submit都会得到相同的结果。 ???????
这就是我认为它一定是htaccess文件的原因。
在manny吃了一顿,在这里搜索和询问了几个小时后。
我终于明白了问题所在。
当我忘记http://

羞耻


manny感谢revo为我提供的帮助您的第一个答案似乎是正确的

可能是,通过点击“后退”按钮,浏览器的地址栏显示
www.example.dev/public/controller\u example/
/controller\u example
,以形成操作URL。考虑使用静态绝对路径来确保。i不使用后退按钮,只需点击提交按钮即可。表单的操作只会将方法带到第一个URL,因此控制器->方法现在启动模型来处理POST[data]并返回。控制器->方法现在将我带回表单。只有结果。绝对路径