2

我想摆脱我整个网站上的一些查询字符串(明确的 facebook 共享/喜欢查询,通常以 fb_action 开头)。

我考虑过使用 .htaccess 来做到这一点。

我想要这个:链接1)

http://example.com/documents/de_desmarais_en_sirois?fb_action_ids=10151430962018298&fb_action_types=og.likes&fb_source=timeline_og&action_object_map={%2210151430962018298%22%3A157643874359578}&action_type_map={%2210151430962018298%22%3A%22og.likes%22}&action_ref_map=[]

看起来像:链接2)

http://example.com/documents/de_desmarais_en_sirois

在我的 .htaccess 中,我添加了:

RewriteCond %{QUERY_STRING} fb_action
RewriteRule ^(.*) /$1? [R=301,L]

但是,当我转到原始链接时,我被定向到我的根文件夹 example.com/pages.php,但我想保留 URL 的第一部分,即example.com/documents/de_desmarais_en_sirois. 我不想去我的根。

我应该修改/做什么?

4

1 回答 1

2

我假设您已将这些规则添加到/documents/目录中的 htaccess 文件中?

您需要删除规则目标中的前导斜杠并添加重写基础:

RewriteBase /documents/

RewriteCond %{QUERY_STRING} fb_action
RewriteRule ^(.*) $1? [R=301,L]

查询字符串匹配可以改进一点:

RewriteCond %{QUERY_STRING} (.*)(^|&)fb_[^&]+(.*)$
RewriteRule ^(.*) $1?%1%2 [R=301,L]
RewriteCond %{QUERY_STRING} (.*)(^|&)action_[^&]+(.*)$
RewriteRule ^(.*) $1?%1%2 [R=301,L]

如果您有其他要保留的参数,则仅删除 facebook 查询字符串参数。

于 2012-09-10T04:01:56.133 回答