问题描述
我想为我的带有分页的搜索结果页面写一个重写规则,它必须满足以下条件:
显示网址 1:
/search?q=SEARCH-QUERY
实际网址 1:
/search.PHP?q=SEARCH-QUERY
和
显示网址 2:
/search?q=QUERY&p=N
实际网址 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]
解决方法
对于您展示的样品,请您尝试以下一次。 在测试您的网址之前,请务必清除浏览器缓存。
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]