.htaccess RewriteRule 用于带分页的搜索页面

.htaccess RewriteRule for search page with pagination

我想为我的带分页的搜索结果页写一个重写规则,它必须满足以下条件:

显示URL1:

/search?q=SEARCH-QUERY

实际 URL 1:

/search.php?q=SEARCH-QUERY

显示URL2:

/search?q=QUERY&p=N

实际 URL 2:

/search.php?q=QUERY&p=N

其中 QUERY 是一个变量字符串(用户输入),N 是一个整数(页码)。

我有以下满足条件 1 的内容,但我无法修改它来满足条件 2。

RewriteCond %{THE_REQUEST} \s/(search)\?q=[^\s]*\s [NC]
RewriteRule ^ %1.php [L,QSA]

根据您展示的示例,请您尝试以下一次。 请确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/(search)\?(?:q=[^\s]*)\s [NC]
RewriteRule ^ %1.php [L,QSA]
RewriteCond %{THE_REQUEST} \s/(search)\?(?:q=[^\s]*)&(?:p=[0-9]+)\s [NC]
RewriteRule ^ %1.php [L,QSA]