Нафига нам код приводить?.. Ищите пробел в конце или в начале в одном из подключаемых файлах.
Как вариант добавить после RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} !iPhone|iPod|BlackBerry|Android|Windows CE|IEMobile|Opera (Mini|Mobi)
RewriteCond %{QUERY_STRING} no_redirect=true
RewriteRule ^(.*) /$1? [R=301,L]
Хотя как правильно подметили выше - запретить в robots и не городить костыли.
Смотреть логи.
Искать шеллы.
Найти на форуме соответствующий раздел про безопасность.
Обратится к специалистам.
Перед объявление типа XML документа не должно никаких символов, а у вас там как минимум лишний пробел.
Редиректы надо добавлять перед реврайтами, но после RewriteEngine
Disallow: /shop/
В данном виде как у вас никак.
Добавьте флаг QSA, и будет счастье
RewriteRule ^([^.]+)$ /ru/start.php?$1 [QSA]
Это либо используются реврайты (mod_rewrite), и стоит лево добавленный знак вопроса для сброса параметров (RQUEST_URI с параметрами, а $_GET пустой), либо $_GET массив удаляется в скрипте.
print_r($_GET);