我有一个使用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而不是另一个。
答案 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]