---------- Добавлено 17.06.2013 в 19:57 ----------
Итак, провел тесты.
10000 запросов, 10 конкурирующих клиентов.
Результат для проверки через подзапрос -F на локальной машине 54.32 [#/sec], для исключений в виде регулярных выражений 38.16 [#/sec]. Первый вариант на удивление оказался намного производительнее (я почему-то так и думал). Всем спасибо.
ivan-lev, смотрите. Директивы resource, kernel закрыты через Require all denied. Будут закрываться еще директивы, и в скором, PHP начнет обрабатывать и некоторые динамические файлы (css). PHP должен принимать все после адреса сайта, то-бишь, ему переадресовывается вся строка, но при условии что запросили не доступный файл. Если я сделают просто редирект при условии, что !-f, тогда при запросе существующего файла из закрытых директорий, запрос не будет передаваться PHP, а Apache будет выдавать существование файла ошибкой 403. Проверка через !-F решает эту проблему, синхронные с правами доступа регулярные выражения также решают эту проблему, но требуют тщательного редактирования конфигурации. Вот мне и интересно, оправдан ли здесь подзапрос. На данный момент, я использую именно !-F && !=/index.php. Бенчмарки под Apache никогда не делал, но вижу, что придется опять вникать в дебри самому.
ivan-lev, говорите B, раз сказали A. Я не понимаю что вы хотите.
Понимаю.. !F и !f - это две "большие разницы".
Спасибо. Я знаю. Я спрашиваю о производительности одно против другого (в цифрах). Еще я бы хотел услышать как раз таки о механизме подзапросов. Может кто-то быстренько сделает бенчмарк или прочитает логи выполнения каждого из вариантов. Но никак не демагогию об относительный путь против абсолютного (всегда использую абсолютный). Оба кода рабочие и мне больше по душе код с подзапросом, но... читайте первый пост.
RewriteRule ^(kernel|resource)/.+ - [L]
Для меня это все тот же другой вариант. Как раз он и рассматривается в другом варианте. Здесь подзапрос против исключения, а не битва синтаксиса, понимаете? :)
Чисто логически, это должно влиять на вес передаваемого PR, соответственно, и на продвижение под Google, и чисто по тенденции, и под Яндекс с новыми алгоритмами (могу ошибаться, поправьте).
---------- Добавлено 16.06.2013 в 16:56 ----------
А проверка через ! заставит создать эту переменную, перед проверкой. Надо хотя бы так isset($_POST['var']) && !empty($_POST['var']) or is_numeric($_POST['var']).
---------- Добавлено 16.06.2013 в 16:57 ----------
absurdo, установите модуль mod_headers. И потом установите в httpd.conf нужный заголовок.
ivan-lev, о своем. Nginx - исключено. Спасибо.
---------- Добавлено 17.06.2013 в 19:57 ----------
Итак, провел тесты.
10000 запросов, 10 конкурирующих клиентов.
Результат для проверки через подзапрос -F на локальной машине 54.32 [#/sec], для исключений в виде регулярных выражений 38.16 [#/sec]. Первый вариант на удивление оказался намного производительнее (я почему-то так и думал). Всем спасибо.
ivan-lev, смотрите. Директивы resource, kernel закрыты через Require all denied. Будут закрываться еще директивы, и в скором, PHP начнет обрабатывать и некоторые динамические файлы (css). PHP должен принимать все после адреса сайта, то-бишь, ему переадресовывается вся строка, но при условии что запросили не доступный файл. Если я сделают просто редирект при условии, что !-f, тогда при запросе существующего файла из закрытых директорий, запрос не будет передаваться PHP, а Apache будет выдавать существование файла ошибкой 403. Проверка через !-F решает эту проблему, синхронные с правами доступа регулярные выражения также решают эту проблему, но требуют тщательного редактирования конфигурации. Вот мне и интересно, оправдан ли здесь подзапрос. На данный момент, я использую именно !-F && !=/index.php. Бенчмарки под Apache никогда не делал, но вижу, что придется опять вникать в дебри самому.
ivan-lev, говорите B, раз сказали A. Я не понимаю что вы хотите.
Спасибо. Я знаю. Я спрашиваю о производительности одно против другого (в цифрах). Еще я бы хотел услышать как раз таки о механизме подзапросов. Может кто-то быстренько сделает бенчмарк или прочитает логи выполнения каждого из вариантов. Но никак не демагогию об относительный путь против абсолютного (всегда использую абсолютный). Оба кода рабочие и мне больше по душе код с подзапросом, но... читайте первый пост.
Для меня это все тот же другой вариант. Как раз он и рассматривается в другом варианте. Здесь подзапрос против исключения, а не битва синтаксиса, понимаете? :)
в REQUEST_FILENAME полный путь лежит.
В VirtualHost обязательно. htaccess не использую. И даже для -F (только что проверил).
эм.. а почему в документации PHP?
Опечатка.
запрос к файловой системе на проверку наличия файла делается - его не обойти.
Вы понимаете разницу между эмуляцией (подзапросом) и проверкой на существование локального файла?
По сути, пожалуйста. Может кто-то поможет прочитать Rewritelog trace?
Чисто логически, это должно влиять на вес передаваемого PR, соответственно, и на продвижение под Google, и чисто по тенденции, и под Яндекс с новыми алгоритмами (могу ошибаться, поправьте).
"0" и 0 - empty тоже вернет true...
---------- Добавлено 16.06.2013 в 16:56 ----------
А проверка через ! заставит создать эту переменную, перед проверкой. Надо хотя бы так isset($_POST['var']) && !empty($_POST['var']) or is_numeric($_POST['var']).
---------- Добавлено 16.06.2013 в 16:57 ----------
3 секунды открывался. И да... просто Perl.
А лучше так
echo mb_convert_case('привет', MB_CASE_TITLE, 'utf-8');siv1987, нет. Смешно ведь для проверки чисел использовать регулярные выражения.