Удалите все незаписанные параметры GET из URL-адресов с помощью htaccess

Я заметил в Инструментах для веб-мастеров, что многие URL-адреса имеют параметры, добавленные намеренно или случайно, и похоже, что Google считает, что это отдельные страницы.

Все мои URL-адреса переписаны, и ни один из них не содержит вопросительных знаков ?, но я вижу много URL-адресов, подобных следующему:

domain.com/profile/user-1?action=wahooo
domain.com/media/a-video?index=viewall

и т.д и т.д...

Как удалить все параметры GET из моих URL-адресов с помощью htaccess?

Я вижу, что самым простым решением было бы какое-то переписывание, чтобы просто удалить все после и включая вопросительный знак?, но я изо всех сил пытаюсь найти способ сделать это с любыми именами и значениями параметров?


person Dan    schedule 10.10.2013    source источник
comment
Можете ли вы опубликовать свой существующий код .htaccess?   -  person anubhava    schedule 10.10.2013


Ответы (1)


Вам просто нужно это:

RewriteCond %{THE_REQUEST} \ /([^\?\ ]*)\?
RewriteRule ^ /%1? [L,R=301]

Когда нет флага QSA, а ? используется в цели правила перезаписи, будет пустая строка запроса.

person Jon Lin    schedule 10.10.2013
comment
Кажется, это сломает другие перезаписи? - person Dan; 10.10.2013
comment
@ Silver89 Silver89 что еще переписывает? Не знаю, что делать или не делать, если я ничего о них не знаю. - person Jon Lin; 10.10.2013