1.只有一个INDEX.PHP
2.里面的代码
<div id="p-search" class="portlet">
<h3>Search</h3>
<div id="searchBody" class="pBody">
       <form action="index.php<?php 
   if (!empty($_REQUEST["ss"])){
echo "/".$_REQUEST["ss"];
}
else{
echo "";
}?>" method="get" enctype="application/x-www-form-urlencoded" id="form1">
<div>
 <div>
   <input name="ss" type="text" id="ss" />
   <br />
 <input name="" type="submit" value="提交" /></div>
</div></form>
</div>
</div>
好了这里输入3,点提交后页面URL变成http://127.0.0.1/wiki/index.php/?ss=3
但是我想要的URL是http://127.0.0.1/wiki/index.php/3问:该如何实现?

解决方案 »

  1.   

    改成_GET["ss"]试试:
    <div id="p-search" class="portlet">
        <h3>Search</h3>
        <div id="searchBody" class="pBody">
        <form action="index.php<?php 
           if (!empty($_REQUEST["ss"])){
               echo "/".$_GET["ss"];
           }
           else{
               echo "";
           }?>" 
           method="get" enctype="application/x-www-form-urlencoded" id="form1">
           <div>
              <div>
              <input name="ss" type="text" id="ss" /><br/>
              <input name="" type="submit" value="提交"/>
              </div>
           </div>
        </form>
        </div>
    </div>
      

  2.   

    首先,你要明白为什么会出现上述原因。因为你构造的form表单使用的是get方法,所以url地址会带有表单内传递的参数,这样就会出现 ?ss=3 这样的参数。而你前面所做的判断只不过是在构造form 表单的路径时起作用。无论你如何构造这里,都不会改变你在使用get方法传参数这个事实,所以最终还是会出现 ?ss=3这样的结果。
    想要改变它的话,最好不要再通过表单传递,使用url重定向。如你的提交按钮不要定义成submit类型,而定义成button类型,然后使用click方法实现 location.href = ‘http://127.0.0.1/wiki/index.php/3 ’;这样应该就可以了。