网址mod_rewrite无效

时间:2011-11-05 06:43:55

标签: php apache mod-rewrite

我创建了两个页面

alice.php和bob.php

alice.php的代码

<?php
echo "This is alice page";
?>

<form name="sdlflks" method="get" action="bob.php">
<input type="text" name="t1">
<input type="submit" name="submit">
</form>

bob.php的代码

<?php
echo "This is bob page";
echo "<br>" . $_GET['t1'];
?>

我在alice页面上输入helloworld,然后以这种url格式重定向到bob.php     http://localhost/test1/bob.php?t1=helloworld&submit=Submit

而我希望显示为

http://localhost/test1/bob.php/helloworld

http://localhost/test1/bob/helloworld

我用谷歌搜索了一些文章,在这里回答但是却找不到这个。

还在&#34; test1&#34;

的同一目录中创建了一个.htacces.conf

在.htaccess.conf中

我为mod_rewrite添加了这个experssion

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ bob.php?t1=$1&submit=$2 [L]

任何让我知道的人,我实现了这个目标。 我应该在哪里添加这个表达式在哪行代码或我需要在哪个模块中放置它。

1 个答案:

答案 0 :(得分:1)

只使用mod_rewrite,你只能得到:

http://localhost/test1/bob?t1=helloworld&submit=Submit

这是因为HTML表单提交是从浏览器发生的,默认情况下它将GET参数作为成对附加,用&符号分隔。

如果您确实需要表单提交,请最终:

http://localhost/test1/bob/helloworld

有两种解决方案:

  • 使用javascript提交。这意味着您将捕获提交,只需将用户发送到上面的URL
  • 正常提交并从您的php脚本中恢复到上面的URL重定向以执行“漂亮”URL中的操作