ISAPI使用查询字符串重写

时间:2013-08-26 19:53:40

标签: .htaccess url mod-rewrite url-rewriting iirf

在我的网站上,我有这样的网址:

http:// www.domain.com/something-like-page-title-4en

使用ISAPI重写器(Ionics Isapi重写过滤器)我有以下规则:

RewriteRule ^/([^.?]+[^.?/])$  /index.php?URL_string=$1 [L,U]

这意味着,上述规则正在将以上网址转换为:

http://www.domain.com/index.php?URL_string=something-like-page-title-4en

如果有人喜欢Facebook上的URL,Facebook会在我的网址中添加其他跟踪参数,它们看起来像是:

http://www.domain.com/something-like-page-title-4en?fb_action_ids=2159471566173547&fb_action_types=og.likes&fb_source=712&action_object_map=%7B%2780201701278628651%22%3A10110880521592526%7D&action_type_map=%7B%2210201714908651773%22%3A%22og.likes%22%7D&action_ref_map=%5B%5D

我的上述规则无法处理此类网址(带有查询字符串)。我需要的是能够捕获URL,查询字符串和没有它们的规则,并按如下方式处理URL:

示例1(带有查询字符串的网址):

原始网址:

http://www.domain.com/something-like-page-title-4en?param1=value1&param2=value2

重写网址:

http://www.domain.com/index.php?URL_string=something-like-page-title-4en&param1=value1&param2=value2

示例2(没有查询字符串的网址):

原始网址:

http://www.domain.com/something-like-page-title-4en

重写网址:

http://www.domain.com/index.php?URL_string=something-like-page-title-4en

非常感谢。

1 个答案:

答案 0 :(得分:2)

使用QSA(查询字符串追加)标志:

RewriteRule ^/?([^/]+)/?$ /index.php?URL_string=$1 [L,U,QSA]