我知道这可能不是很重要,但由于所有 url 的外观都很整洁,我想把它带入一种“标准”。
表格在 layout.php 中
<form method="get" action="/search/"> … </form>
Index.php 对传入请求有以下规则:
// Для вывода конкретной статьи, выводит, например: http://site.org/article/1
$router->addRoute('^/article/([0-9a-zA-Z\-]+)', function($url, $id) {
article_action($id);
});
// Для поиска, выводит, например: http://site.org/search/?termin=Запрос
$router->addRoute('^/search/', function($url) {
$termin = $_GET['termin'];
search_action($termin);
});
如果你这样尝试:
// Хотелось бы вот так: http://site.org/search/Запрос
$router->addRoute('^/search/([0-9a-zA-Z\-]+)', function($url, $termin) {
category_action($termin);
那是行不通的。
你能告诉我错误可能在哪里吗?
(正则语言不支持西里尔文,不过我先不打扰,这是第二件事,我用拉丁词查询)
尚不清楚服务器路由应如何帮助浏览器发送的链接
只有两个选项:要么使用 Javascript 处理表单,要么按照上一个问题中的建议进行操作 - 在服务器上获取常用版本,然后重定向到“整洁链接”。
在我看来,这两个选项都比带问号的链接丑得多。谷歌在这里并不回避使用它的搜索,堆栈溢出 - 也是。我不认为这是“不美观”