我正在尝试传递参数并使用PHP中的GET
函数对已使用mod重写重写的URL,这是来自PHP: GET Variables on Mod Rewritten URL的后续问题。
这就是我现在所拥有的:
RewriteRule ^search/$ ?action=search [L,QSA]
我希望网址仅显示为search/?q=test&p=1
而不是search/?action=search&q=test&p=1
这是上述重写规则给我的,有没有办法告诉它忽略规则上的第一个参数或忽略特定参数?
RewriteRule ^search/?q=([^/]+)&p=([0-9])$ ?action=search&q=$1&p=$2 [L,QSA]
答案 0 :(得分:1)
您可以使用以下规则与%{THE_REQUEST}变量匹配完整的请求行:
RewriteCond %{THE_REQUEST} /search/\?action=[^&]+q=([^&]+)&p=([^&\s]+)$ [NC]
RewriteRule ^ /search/?q=%1&p=%2 [NC,L,R]
这将重定向
到
然后将重写以下规则:
到其原始位置
行动= FOO&安培; Q =栏&安培; P = 1
RewriteRule ^ search / $?action = search [L,QSA]