来自GET表单的mod_rewrite

时间:2012-01-27 13:49:43

标签: forms apache mod-rewrite get

我有一个get表单,它将一个位置变量返回到url中。我的整个网站的网址重写与我的表格不同。每当我提交表格时,我都希望它能够:

  

/芬达斯/位置/ locationvalue

但目前是:

  

find_us?位置= locationvalue

这是我当前的.htaccess文件:

RewriteEngine On    # Turn on the rewriting engine

RewriteRule  ^([^/.]+)/?$ $1.php [L] # rewrite without query string parameters
RewriteRule  ^([^/.]+)/([^/.]+)/([^/.]+)/?$ $1.php?$2=$3 [L] # one parameter
RewriteRule  ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ $1.php?$2=$3&$4=$5 [L] # two parameters

1 个答案:

答案 0 :(得分:0)

正如Phil评论的那样,这不是一个重写问题,而是生成表单的更多脚本之一。这将发出类似以下内容的HTML:

<form id="some_form_name" method="post" action="some_action">

其中“some_action”是要执行的URI。如果生成脚本使用$_SERVER["REQUEST_URI"](让我们假设PHP),那么它将生成内部URI表单,而不是外部表单,这就是正在发生的事情。要解决此问题,您需要修改表单代码以生成使用外部URI格式的操作。