Да, спасибо. Я не догадался сделать ^$.
Да. Нюанс в том, что главную может обрабатывать другой файл.
Можете еще так ^index\.php$
По такому паттерну ^/?$ как раз нужна главная.
RewriteCond %{QUERY_STRING} =page=1054RewriteRule ^/?$ https://site.ru/lechenie-autizma/? [R=301,L]
Т.е. сначала mod_rewrite проверит текущий url на соответсвие паттерну ^/?$ , после чего уже проверит RewriteCond. Правильно пониманию?
Я поделюсь вчерашним прозрением:
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';
Да. Первый случай показал разницу чуть больше 10%, второй уже меньше.
Да. Поэтому я сделал цикл
for ($i = 0; $i < 10000; $i++) { file_get_contents('http://site.ru/'); }
Да :) И быстрее чем mod_rewrite.
Те тесты были на страницу, 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 ----------
С PHP 7.1 первый вариант 116 мс, второй 120 мс. Ваш выигрывает.
Ну тогда же мы полностью потеряем навигацию. Все ссылки сайта станут отдавать 404. Вы же помните, что домен остался прежним и все действия происходят в одной среде. Где для /?page=*** сделать редирект на указанную страницу, которая находится на этом же хосте и которую нужно показать с кодом 200.
/ru/forum/comment/16161983---------- Добавлено 21.08.2019 в 23:33 ----------ivan-lev, дочитал и понял. Извините :)---------- Добавлено 21.08.2019 в 23:48 ----------Можно такую схему сделать, но скорость ответа как минимум на 10% хуже даже при наличии 80 RewriteRule...
Но все равно спасибо!