Кириллица в htaccess для блокировки спама аналитики

У меня много спама в Google Analytics с разных доменов, и один из них закодирован кириллицей, поэтому мне трудно добавить его в мой файл .htaccess.

Я хочу добавить с.новым.годом.рф в файл .htaccess, чтобы заблокировать его, но я не знаю, как это сделать, потому что файл при сохранении не сохраняет символы кириллицы.

RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?с.новым.годом.рф.*$ [NC]

преобразуется в

RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)??.?????.?????.??.*$ [NC]

Я искал способ конвертировать кириллицу в юникод, но безуспешно. Любое предложение?

Спасибо


person Luca    schedule 26.01.2016    source источник
comment
согласно другому сообщению здесь, в SO, вы можете делать то, что говорите. stackoverflow.com/questions/16978182/ (введите кириллические символы в htaccess, т.е.)   -  person andrew    schedule 26.01.2016


Ответы (1)


Заголовки HTTP не могут включать произвольные необработанные символы Unicode, поэтому заголовок Referer содержит URI ASCII, а не Символы кириллицы в IRI.

Поэтому вам нужно использовать URI-форму в правиле для сопоставления. Чтобы преобразовать IRI в URI, вы используете кодировку URL-UTF-8 для частей пути и алгоритм IDN по имени хоста.

например, используя Python:

>>> u'с.новым.годом.рф'.encode('idna')
'xn--q1a.xn--b1aube0e.xn--c1acygb.xn--p1ai'

So:

RewriteCond %{HTTP_REFERER} ^https?://(www\.)?xn--q1a\.xn--b1aube0e\.xn--c1acygb\.xn--p1ai.*$ [NC]

Тем не менее было бы неплохо найти текстовый редактор для ваших файлов .htaccess, который не уничтожает совершенно хорошие символы Unicode.

person bobince    schedule 26.01.2016