Apache RewriteMap并隐藏URL

时间:2011-04-19 14:16:23

标签: apache mod-rewrite

我正在尝试在Apache下实现持久性URL,但我无法将从RewriteMap传回的URL保持隐藏状态。也就是说,如果我有PURL:

http://www.mysite.com/psearch?purl=12345

,其映射值为:

http://www.mysite.com/search?name=test&type=test2

我希望PURL成为浏览器地址栏中显示的URL。不幸的是,它会不断显示PURL映射到的网站。我的规则如下:

RewriteCond %{REQUEST_URI} /psearch(/)*$
RewriteMap mapper prg:/scripts/rewritetest.pl
RewriteRule ^/(.*)$ ${mapper:$1} [L]

现在所有的mapper都会返回系统上测试页面的URL,因为我正试图让地址隐藏起作用。而且我知道我现在没有抓住参数,我只是想尝试使用psearch keywork运行测试,如果可以隐藏地址的话,稍后会添加其余的。

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

原来问题是我正在返回完整的URL,这强制完全重定向。只返回REQUEST_URI部分就可以了。

强制标头过期也有帮助,因为当某些内容正常工作时,缓存的内容会变得模糊不清。