Я бы сказал, что проблема в том, что вам нужно сохранить другие потенциальные параметры получения ...
Вероятно, что-то подобное может сработать:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*)&?css=(mobile|desktop)(.*)$
RewriteRule ^/?(.*)$ /$1?%1%2 [R=301,L,QSD]
Этот набор правил должен работать аналогично в конфигурации хоста http-серверов, а также в файлах динамической конфигурации (файлы стиля .htaccess), если вам нужно использовать те (которые вы должны попытаться предотвратить ...).
Вот модифицированная версия с фиксированным условием, указанным @MrWhite в комментарии:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*?)&?css=(?:mobile|desktop)(.*)$
RewriteRule ^/?(.*)$ /$1?%1%2 [R=301,L,QSD]
"DllName.dll не мог быть найден", мог также означать, что DllImport не нашел одну из зависимостей DllName.dll.
Захватите Dependecy Walker для проверки, какой dependecy Вы пропускаете.
Я предложил бы, чтобы Вы использовали FileMon (sysinternals.com), чтобы проверить, являются ли Ваши предположения о местоположении библиотеки правильными.
DllImport не консультируется с переменной окружения PATH когда загружаемая DLL. Я вполне уверен, что DllImport следует стандартным правилам для загрузки собственного DLL в собственной программе, когда на DLL ссылаются по имени. Вот статья, которая подробно излагает те правила
http://msdn.microsoft.com/en-us/library/ms682586.aspx
Я нашел, что самый простой способ загрузить DLL состоит в том, чтобы только поместить его в то же местоположение как программа, которую я выполняю.