如何通过允许mod_rewrite作为查询字符串和页码来进行.htaccess搜索?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过允许mod_rewrite作为查询字符串和页码来进行.htaccess搜索?相关的知识,希望对你有一定的参考价值。
我的原始文件是一个名为search.php
的PHP页面。
通常,搜索功能将是:
mydomain.com/search.php cid=&type=search&q=keyword+text&page=2
但是,是否可以将其重写为mydomain.com/all.html?q=keyword+text&page=[1-anypage]
?
我试着把这段代码放到.htaccess中:
RewriteRule ^all.html?q=([^.*]+)&p=([0-9]+)$ search.php?cid=&type=search&q=$1&p=$2 [L]
但出了点问题。
请帮我找到解决方案。谢谢。
答案
是的可能但你无法匹配RewriteRule模式中的查询字符串,你需要使用RewriteCond
指令检查%{QUERY_STRING}
类似如下
RewriteEngine On
RewriteCond %{QUERY_STRING} ^q=([^&]+)&page=(.+)$ [NC]
RewriteRule ^all.html$ /search.php?cid=&type=search&q=%1page=%2 [L]
以上是关于如何通过允许mod_rewrite作为查询字符串和页码来进行.htaccess搜索?的主要内容,如果未能解决你的问题,请参考以下文章
ini 使用mod_rewrite(和mod_setenvif)通过temp env vars操作查询字符串参数的示例
使用 mod_rewrite 将带有哈希字符的路径转换为查询字符串