从_GET查询创建SEO友好URL

时间:2016-07-13 12:29:48

标签: php .htaccess url url-rewriting seo

我有一个使用GET请求的搜索表单。当我点击回车时,网址通常不是SEO友好的,有没有一种方法可以让我在输入时显示SEO友好的网址?

例如

  

获取请求http://someurl.com?a=search&query=what+are+you+looking+for
    SEO网址应为http://someurl.com/search/what+are+you+looking+for

我已经创建了一条规则

RewriteRule ^search/(\w+) index.php?a=search&query=$1

在我的.htaccess中,当我手动将SEO Url键入地址栏时,它可以正常工作。所以我想这只是确保当我在搜索字段内输入时,它会加载SEO Url而不是另一个。

3 个答案:

答案 0 :(得分:2)

您必须将您的orignal uri重定向到新的uri,在现有规则之前添加以下内容:

RewriteEngine on
RewriteCond %{THE_REQUEST} /(?:index\.php)?\?a=search&query=(.+)\sHTTP [NC]
RewriteRule ^ /search/%1? [NE,L,R]

答案 1 :(得分:0)

您可以在.htaccess

中使用此功能
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /?a=$1&query=$2 [L]

这将为您提供以下网址:

http://someurl.com/search/what+are+you+looking+for

答案 2 :(得分:0)

我在途中这样做:)

这是搜索结构

  <form method="post">
     <input type="text" name="search" placeholder="search"/>
  </form>

表格之前

if(isset($_POST['search'])){
echo '<script>window.location = "www.domain.com/search/'.$_POST['search'].'"</script>';
}

并在.htaccess

RewriteEngine on
RewriteRule ^search/([^/]*)$ index.php?page=search&search=$1 [NC,L]