2013-08-26 99 views
3

在我的网站我的网址是这样的:ISAPI查询字符串重写

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

随着ISAPI重写(离子学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添加了其他跟踪参数ters到我的网址,它看起来像:

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(与查询字符串)。我需要的是规则,这将能够赶上这两个网址,以及查询字符串,没有他们,并处理的网址如下:

例1(URL查询字符串):

原始地址:

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

重写后的URL:

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

实施例2(URL,而不查询字符串):

原始地址:

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

重写后的URL:

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

感谢。

回答

2

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

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

它帮助只是一点点。用我的旧规则,我有“404 - 页面未找到”错误。用你的规则ISAPI重写器捕获请求,但不是想要的。 如果我将http://www.domain.com/something-like-page-title-4en?param1=value1¶m2=value2作为原始URL,我希望它被重写为 http://www.domain。 com/index.php?URL_string =类似东西的页面标题-4en&param1 = value1&param2 = value2 ....与你的规则我得到它作为 http://www.domain.com/index.php?URL_string = something-like-page-title-4sr?param1 = value1&param2 = value2 ...正如你所看到的,有2个问号。 – Misko

+0

确定编辑好了,现在就试试吧。它在这里很晚,所以如果它不起作用,请留言,我会在早上醒来时参加。 – anubhava

+0

不幸的是,我看不到任何结果的变化。尽管您更改了规则,但结果仍然相同。 – Misko