我有一个重写的网址,它看起来像下列之一:
http://www.example.com/anyfolder/some-more-here/
http://www.example.com/anyfolder/some-more-here/?ref=referralcode
以下是我玩的规则:
RewriteRule ^([a-z0-9-]+)/([a-z0-9-]+)/?$ /page.asp?folder=$1&url=$2&refcode=$3 [NC,L]
我的问题是,因为(http://www.example.com/anyfolder/some-more-here/?ref=)是一个重写的URL,在重写完成后其上有一个额外的查询字符串项,我如何在我的代码中获得该“ref”项?通过做一个简单的请求,我可以很容易地得到“anyfolder”和“some-more-here”,但我对“ref”值部分感到困惑。我认为可能需要QSA标志,只是无法将它们整合在一起。
我在这个网站上使用Classic ASP,但解决方案可能也适用于PHP。
任何帮助都会很棒。提前谢谢你!
丹尼斯
答案 0 :(得分:2)
好的,根据你的评论你需要QSA
标志。请尝试以下规则:
RewriteRule ^([a-z0-9-]+)/([a-z0-9-]+)/?$ /page.asp?folder=$1&url=$2&refcode=$3 [NC,L,QSA]
这将在重写的URI中保留?ref=...
。
QSA
(查询字符串追加)标记在添加新查询参数时保留现有查询参数。