htaccess重写仅在第一次有效

时间:2016-06-13 11:08:11

标签: php apache .htaccess mod-rewrite url-rewriting

我面临的问题是:
当我从表单中点击提交按钮时,操作被设置为相对路径。 第一次按下按钮时,重写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_example 带我到表格。
然后,当我点击(提交)按钮时,它将我带到:
www.example.dev/public/controller_example/的 method_example
完美!!! 正是我想要的。
现在我回到表单并且方法( method_example )已经过去了。

但是当我再次点击提交按钮时,它会失败 我现在获得的URL是:
www.example.dev/public/controller_example/的 controller_example / method_example
并再次击中它:
www.example.dev/public/controller_example/controller_example/controller_example/method_example

等等

所以我坚持这个不能说得对,任何人?

ps:我对我糟糕的英语的批评我是荷兰人。

1 个答案:

答案 0 :(得分:0)

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

我所描述的上述问题不起作用的原因是:
只是我的第一个显示From收听的URL,
www.rsmk.dev/public/controller_example 但实际上是:
www.rsmk.dev/public/controller_example/ index.php

现在当我点击提交按钮时,表单操作=&#34; controller_example / method_example&#34;给我以下网址:
www.rsmk.dev/public/Controller_example/的 method_example
那就是到目前为止我想要的那么好。
(它将我带到同一页面,因为我的routing.php只占用了一个数组 www.rsmk.dev/public/ Controller_example / method_example ,我的方法为我提供了视图页面。 所以,当我再次点击它时,表单动作=&#34; controller_example / method_example&#34;现在给我以下网址:
www.rsmk.dev/public/controller_example/的 Controller_example / method_example
错误!!!
并再打它给了我下面的内容:
www.rsmk.dev/public/controller_example/controller_example/的 Controller_example / method_example
等等!!!!因为我的方法每次都会向右侧视图显示不同的网址(每次点击后它会增加 controller_example ) 因此,相对路径永远不会起作用!!!

我尝试了一个绝对路径,每次点击提交时都会得到相同的结果。 ???????
所以这就是我认为必须是 htaccess 文件的原因 在曼尼试图和几个小时的搜索和询问之后 我终于看到了问题 当我忘记了http://
时,我的绝对路径并不是绝对的 羞耻羞耻

manny感谢revo帮助我,似乎你的第一个答案是正确的