Я неоднократно видел в htaccess
следующие типы правил:
RewriteCond %{HTTP_REFERER} !^http://www.domain.it$ [NC]
или
RewriteCond %{HTTP_HOST} !^www\.domain\.it$ [NC]
Почему нужен флаг NC
при проверке только части домена?
Я заметил, что браузеры всегда конвертируют верхние регистры в именах доменов в нижние регионы, поэтому я не вижу, что в этом случае флаг [NC]
является допустимым.
Я имею в виду, если мы проверим оставшуюся часть URL-адреса, я понимаю необходимость возникновения флага [NC]
в системах Unix www.domain.com/index.html
- это другой файл, чем www.domain.com/index.html
, но я не понимаю необходимости флага NC
когда мы проверяем только часть домена в RewriteRule.
Поскольку вы нашли время, чтобы прочитать выше, позвольте мне задать еще один незначительный вопрос, не связанный напрямую с флагом NC
, но все же связанный с RewriteCond
Оба RewriteCond
, показанные выше, работают хорошо, я думал, что только с косой чертой, когда точки будут работать (!^www\.domain\.it$
), потому что точка без косой черты должна означать "any char" в regexp, в то время как \.
означает точку char, но, кроме всего прочего, другая работает хорошо, знаете ли вы, почему?