RewriteRule表格获取请求

时间:2014-08-27 10:40:17

标签: mod-rewrite

当我提交表格时,这是我的网址:

index.php?pagina=search&terms=soccer

我想将其更改为:

/pagina/search/terms/soccer
到目前为止我所做的工作

#searchRewriteRules
RewriteCond %{QUERY_STRING} ^terms=([a-zA-Z0-9]+)$
RewriteRule ^index.php$ /pagina/search/terms/%1? [R=301]

有人可以帮我吗

2 个答案:

答案 0 :(得分:0)

您的查询字符串为pagina=search&terms=soccer。你需要完全匹配。请注意,如果您正在执行POST请求,则会在重定向上丢失POST正文。除此之外,您需要将漂亮的网址翻译回普通网址,并防止无限重定向发生。

RewriteCond %{THE_REQUEST} ^(GET|POST)\ /index\.php?pagina=search&terms=([a-zA-Z0-9]+)\ HTTP
RewriteRule ^ /pagina/search/terms/%2? [R=301,L]

RewriteRule ^pagina/search/terms/(.*)$ /index.php?pagina=search&terms=$1 [L]

答案 1 :(得分:0)

它正在使用jquery。 我创建了一个名为rewritesearch.php的新页面,并将其插入到我的主页面中,表单为。

<强> rewritesearch.php

// Base Url
$url = BASE_URL;

echo <<<EOT
 <script>
      $(document).ready(function() {
            $('#submit').click(function() {
                 // get the terms value
                 var terms = $('.search').val();

                 goUrl = '{$url}pagina/search/terms/'+terms+'/';
                 window.location = goUrl;
                 return false;  // Prevent the default button behaviour
            });
            $('#search_form').submit( function() {
                 return false;  // May be necessary to prevent the default form behaviour
            });
      });
 </script>
EOT;