我面临的问题是:
当我从表单中点击提交按钮时,操作被设置为相对路径。
第一次按下按钮时,重写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:我对我糟糕的英语的批评我是荷兰人。
答案 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帮助我,似乎你的第一个答案是正确的