Какие символы должны и не должны быть включены (или должны быть экранированы) в HTTP_REFERER? - PullRequest
0 голосов
/ 22 декабря 2018

Я хотел обновить свой файл .htaccess с некоторыми новыми изменениями рефералов и нашел хороший список в GitHub https://gist.github.com/raniajal/e6733427207de2677616#file-htaccess-txt-L72.

У меня был смешанный формат тех, которые я нашел в другом месте с экранированными дефисами и безсбежавшие дефисы;косые черты в конце .com, .org, .net, .ga, .ru и т. д., а некоторые без конечной косой черты, такие как:

RewriteCond %{HTTP_REFERER} ^http://.*\.social\-buttons\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} free-share-buttons\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://.*yapoga\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?://([^.]+\.)*seoanalyses\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://.*savetubevideo\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://.*semalt\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} 4webmasters\.org/ [NC,OR]
RewriteCond %{HTTP_REFERER} 7makemoneyonline\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} 100dollars-seo\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} addons\.mozilla\.org [NC,OR]
RewriteCond %{HTTP_REFERER} o\-o\-6\-o\-o\.com [NC,OR]
RewriteCond %{HTTP_REFERER} youporn-forum\.ga/ [NC,OR]
RewriteCond %{HTTP_REFERER} непереводимая\.рф/ [NC]

Я заметил, что список в GitHub не имеетпоследние косые черты и обновленные нотации позволили использовать https, а мои существующие - нет, поэтому я обновил свой список, чтобы использовать его.Например:

RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*o-o-6-o-o\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*slftsdybbg\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*social-buttons\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*socialseet\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*trafficmonetize\.org [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*video--production\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*videos-for-your-business\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*vodkoved\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*www1\.social-buttons\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*ykecwqlixx\.ru [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*youporn-forum\.ga [NC,OR]
RewriteCond %{HTTP_REFERER} forum\.topic65882328\.darodar\.com [NC,OR]
RewriteCond %{HTTP_REFERER} ^https?:\/\/([^.]+\.)*непереводимая\.рф [NC]

Но теперь я получаю 500 Ошибка сервера, а в журнале ошибок написано

RewriteCond: разделители неправильных флагов

Файл имеет формат UTF-8 и яне вижу лишних пробелов.Что я делаю не так?

1 Ответ

0 голосов
/ 26 декабря 2018

Это решено.Кажется, нет никакой разницы в результатах двух примеров.Я перечитал свой список элементов HTTP_REFERER и обнаружил два, которые вызвали проблему.Один в середине списка имел только [NC], поэтому я изменил его на [NC, OR].В одном из них не было [NC, OR], поэтому я добавил, что.

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

...