2012-02-29 118 views
0

的顶部查询字符串我有以下重写规则:的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] 

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

+0

对我很好。使用QSA参数或在处理页面末尾添加询问标记。 – user544262772 2012-02-29 18:40:19

+0

应该正常工作。你的htaccess中还有其他规则吗? – Gerben 2012-02-29 19:01:20

回答

0

这是通过在htaccess的顶端插入下面的代码固定:

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

基本上,它的作用是,它会删除已fb_comment_id任何额外的查询字符串和重定向301到一个没有查询串。

谢谢@oddant和@Gerben的帮助!