apache - .htaccess RewriteRule 用于搜索查询页面
问题描述
我想为我的搜索页面编写一个重写规则,它必须满足以下条件:
显示网址:
/search?q=SEARCH-QUERY
实际网址:
/search.php?q=SEARCH-QUERY
我尝试了以下但没有奏效:
RewriteRule ^search?q=(.*)$ search.php?q=%1 [QSA]
我检查了许多相关问题,但找不到答案。
解决方案
根据您显示的示例,您能否尝试以下操作。请在测试您的 URL 之前清除您的浏览器缓存。您正在检查 rewriterule 中的查询字符串,这将不起作用,因为查询字符串可以在条件中与变量QUERY_STRING
或在变量中匹配,THE_REQUEST
所以我在这里使用稍后的选项。
RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/(search)\?q=SEARCH-QUERY\s [NC]
RewriteRule ^ %1.php [L,QSA]
推荐阅读
- julia - Julia - 根据值数组进行过滤的最快方法?
- python - 关于使用 cgi 和表单的 getlist 和 getvalue
- python - 使用 yFinance 向我的数据框添加一列
- reactjs - 如何将从模态收集的值传输到模态 React 之外的隐藏表单输入
- aws-lambda - IAM 角色与 IAM 用户无法调用 Cognito ListUsers
- javascript - 无法改变
- javascript - 使用 Multer 时强大的不上传
- javascript - 多次查找以获取 wordpress 博客 json 的提要
- ruby - 如何将非英语(az)字符替换为最接近的字符相似度
- laravel - 如何在 Blade 模板(Laravel v8)中获取 url 参数