2012-02-29 2 views
0

У меня есть следующее правило перезаписи:mod_rewrite удалить строку запроса на вершине правила перезаписи

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

Когда я попытался открыть:

/heru-task-number-1.html 

Это работает отлично. Тем не менее, когда есть строка запроса прилагается к нему:

/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

+0

Должно просто работать. Существуют ли какие-либо другие правила в вашем htaccess? – Gerben

ответ

0

Это фиксируется путем вставки следующего кода в верхней части HTAccess:

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

в основном то, что он делает то, что это приведет к удалению какой-либо дополнительная строке запроса, которая fb_comment_id и перенаправлять 301 к одному, без запроса строка.

Спасибо @oddant и @Gerben за помощь!