我正在构建一个搜索表单,但我不知道使用经典的get查询或创建一个可以与我的路由器匹配的自定义URL更好。
GET
ROUTE
答案 0 :(得分:2)
我不知道是否有最好的答案,但是大多数人已经在URL中使用/ term / definition / term / definition一段时间了,因为USED对SEO来说是最好的。然而,谷歌(以及其他人)取得了一些进展。看看这个Google Webmaster Blog entry - 看起来他们在搜索项目时有更多的智慧。
我的一般规则是我使用get参数进行实际搜索,使用URL进行类别(或浏览) - 我相信这是最直观的。并且,就像它现在看起来......无论如何,搜索引擎更适合索引和搜索URL参数。
答案 1 :(得分:1)
您可以在模块配置中使用自定义路由定义:
'search' => array(
'type' => 'Zend\Mvc\Router\Http\Segment',
'options' => array(
'route' => 'search[/:query][/:page]'
然后,您可以使用控制器中的params()
操作帮助程序解析查询参数:
$query = $this->params()->fromRoute('query');
$page = $this->params()->fromRoute('page');
在您的视图中,您可以使用url()
视图助手来构建具有相同路径定义的URL:
$this->url('search', array('query' => 'test', 'page' => '1'));
只需使用GET请求即可。这里不需要POST请求。
希望有所帮助!
祝你好运, 尔根