Gerga

Gerga
Рейтинг
94
Регистрация
02.08.2015
Sitealert:
Я просто обратил внимание на корректность написания директивы, всего лишь.

Да, спасибо. Я не догадался сделать ^$.

Sitealert:
Это другое.

Да. Нюанс в том, что главную может обрабатывать другой файл.

Sitealert:
На самом деле, ^$

Можете еще так ^index\.php$

ivan-lev:
Так регулярку же гоняем.. надо какой-нибудь внутряк..

По такому паттерну ^/?$ как раз нужна главная.


RewriteCond %{QUERY_STRING} =page=1054
RewriteRule ^/?$ https://site.ru/lechenie-autizma/? [R=301,L]

Т.е. сначала mod_rewrite проверит текущий url на соответсвие паттерну ^/?$ , после чего уже проверит RewriteCond. Правильно пониманию?

ivan-lev:
Они могут ещё раз (ибо не читали)) внимательно прочитать, как сделать ЧПУ без mod_rewrite.

Я поделюсь вчерашним прозрением:


ErrorDocument 404 /index.php

Единая точка входа без mod_rewrite :).

Я не знаю, как это будет работать в продакшене, но спасибо за прозрение!

SeVlad:
Написал парсер сервиса, заливал в базу результаты?

нет, я их не связывал. Я сделал свой счетчик.


$start = microtime(true);

for ($i = 0; $i < 10000; $i++) {
file_get_contents('http://site.ru/');
}

echo microtime(true) - $start . ' .sec';
SeVlad:
Я может не понял что и как ты мерял (там же не одна цифра), но это не 10%, а 5 мс.

Да. Первый случай показал разницу чуть больше 10%, второй уже меньше.

SeVlad:
Что вообще в пределах погрешности. TTFB - это не чёткая (ака постоянная) цифра.

Да. Поэтому я сделал цикл


for ($i = 0; $i < 10000; $i++) {
file_get_contents('http://site.ru/');
}
ivan-lev:
Так она работает о_О ))))

Да :) И быстрее чем mod_rewrite.

ivan-lev:
С RewriteCond-ами?

Те тесты были на страницу, url которой не совпадал c шаблоном RewriteRule. Т.е. RewriteCond не проверялся.

Если провести тесты с url`лом, который совпадает под паттерн RewriteRule, то mod_rewrite проигрывает с треском.


10 000 запросов:

PHP 7.3
первый за 21.9 сек., второй за 27.7.

PHP 7.1
первый за 19.1 сек., второй за 27.4.

PHP 5.6
первый за 23.3, второй не тестировал, но тоже будет примерно 27.

ivan-lev, я примерно. Измерял этим https://webopulsar.ru/test/.

Есть 2 варианта:

1. Ваша схема;

2. 80 RewriteRule правил.

Первый вариант показывает среднее ожидание ответа 122 мс, второй 117 мс. В данном тесте результат немного лучше, но второй вариант все равно выигрывает.

PHP 7.3

---------- Добавлено 22.08.2019 в 00:28 ----------

Gerga:
PHP 7.3

С PHP 7.1 первый вариант 116 мс, второй 120 мс. Ваш выигрывает.

ivan-lev:
1. убираем из .htaccess всё, что связано с Rewrite*

Ну тогда же мы полностью потеряем навигацию. Все ссылки сайта станут отдавать 404. Вы же помните, что домен остался прежним и все действия происходят в одной среде. Где для /?page=*** сделать редирект на указанную страницу, которая находится на этом же хосте и которую нужно показать с кодом 200.

fackest1:
Уточнения - сам домен не менялся

/ru/forum/comment/16161983

---------- Добавлено 21.08.2019 в 23:33 ----------

ivan-lev, дочитал и понял. Извините :)

---------- Добавлено 21.08.2019 в 23:48 ----------

Можно такую схему сделать, но скорость ответа как минимум на 10% хуже даже при наличии 80 RewriteRule...

Но все равно спасибо!

Всего: 811