我需要一个网址“/ServiceSearch/r.php?n=blahblah”,并将其转到“/ search / blahblah /”,以便它在浏览器中显示为“/ search / blahblah”,但我真的希望它真的要去“r.php?n = ServiceSearch& n = blahblah”..
所以我想我需要将第一个URL重写为“/ServiceSearch/r.php?n=blahblah”,然后将第二个URL“/ search / blahblah /”改写为第三个,“r。 PHP N = ServiceSearch&安培; N = blahblah”
嗯,我知道这是错的,但这是我最好的猜测。我真的很挣扎。
答案 0 :(得分:1)
嗯,我知道这是错的
不,这实际上是正确的方式。以下内容应该有效:
RewriteRule /ServiceSearch/r.php?n=(.*)$ /search/$1 [R]
RewriteRule /search/(.*)$ /r.php?n=ServiceSearch&n=$1 [L]
此处,(.*)
捕获变量部分(“blablabla”)并通过$1
将其插入替换中。最后的标志意味着第一个查询应该是HTTP重定向([R]
),即将指示客户端的浏览器重定向到该地址。并且第二个重定向是 last ([L]
- 它也不是HTTP重定向,因为我们没有指定;相反,重定向是在服务器端处理)。严格来说,[L]
标志不是必需的,但如果您以后添加更多重写规则,它将防止不必要的干扰。