Cyrillic在htaccess中阻止Google Analytics垃圾邮件

时间:2016-01-26 11:44:41

标签: .htaccess unicode utf-8 cyrillic

我在Google Analytics上收到来自不同域的大量垃圾邮件,其中一个是西里尔字母编码的,因此我很难将其添加到我的.htaccess文件中。

我想将с.новым.годом.рф添加到.htaccess文件中以阻止它,但我不知道该怎么做,因为保存时的文件不会保留cyrilic字符。

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

转换为

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

我搜索过将西里尔字母转换为unicode的方法,但我没有成功。 有什么建议吗?

由于

1 个答案:

答案 0 :(得分:1)

HTTP标头不能包含任意原始Unicode字符,因此Referer标头在URI中包含ASCII IRI而不是西里尔字符。

因此,您需要使用规则中的URI表单进行匹配。要将IRI转换为URI,请在路径部分使用URL-UTF-8编码,在主机名上使用IDN algorithm

例如使用Python:

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

所以:

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

为.htaccess文件找到一个文本编辑器仍然是一个好主意,但不会破坏完美的Unicode字符。