mod_rewrite在重写规则之上删除查询字符串

时间:2012-02-29 18:29:58

标签: .htaccess mod-rewrite

我有以下重写规则:

RewriteRule ^(.*)-task-(.*)\.html$ /index.php/task/name/$2\-task\-$1 [L]

当我试图打开时:

/heru-task-number-1.html

工作正常。 HOwever,当附加一个查询字符串时:

/heru-task-number-1.html?whatever=value

实际上并没有调用正确的重写。因此,我想知道如何才能确保两者:

/heru-task-number-1.html

/heru-task-number-1.html?whatever=value

实际上是在调用同样的东西:

/index.php/task/name/$2\-task\-$1

我试图这样做但无济于事。

RewriteRule ^(.*)-task-(.*)\.html\?(.*)$ /index.php/task/name/$2\-task\-$1 [L]

感谢您的帮助或对此的反馈。

1 个答案:

答案 0 :(得分:0)

通过在htaccess:

的顶部插入以下代码来解决此问题
RewriteCond %{QUERY_STRING} (^|&)fb_comment_id=
RewriteRule ^(.*)$ /$1? [L,R=301]

基本上,它的作用是删除任何具有fb_comment_id的额外查询字符串,并将301重定向到没有查询字符串的字符串。

谢谢@oddant和@Gerben的帮忙!