Htaccess参数覆盖+允许额外的参数?

时间:2013-03-12 18:09:57

标签: .htaccess url-rewriting rewrite clean-urls

我的.htaccess文件中有一条规则用干净的路径覆盖丑陋的参数网址。

以下是一个例子:

RewriteRule ^landing(/)?([0-9]+)?(/)?$ landing/index.php?intPage=$2

所以当有人进入/ landing / 3时,会加载index.php页面,将intPage参数传递为3。

很简单。

但是,我正在使用技术来追踪Google Analytics(分析),因此我需要在此网址上添加参数:

例如:

/landing/3?kt_type=ad&kt_st1=adwords&kt_st2=prize_a_us.en

问题在于,我不知道如何检索添加到URL的参数,因为URL已被覆盖,现在我无法检索kt_type,kt_st1等。

有关如何使其成为可能的任何想法,所以我仍然可以将参数添加到已经覆盖的URL?

1 个答案:

答案 0 :(得分:2)

使用QSA flag。将您的规则更改为:

RewriteRule ^landing/?([0-9]+)?/?$ landing/index.php?intPage=$1 [L,NC,QSA]

来自官方文档:

  

QSA - 将原始请求URL中的任何查询字符串附加到任何查询字符串   在重写目标中创建的查询字符串