Тест, который вы написали, выполняет два файловых теста (, если 'not-file' и 'not-dir' ), и если они верны, он выполнит ваш RewriteRule
. Этот тест выполняется для каждого запроса. Даже если бы результат в противном случае потребовал бы только ответа HTTP 304
(без изменений) или когда реальные файлы в настоящий момент хранятся в памяти Apache.
Возможно, это значительно замедлит работу вашего сайта, если на нем будет много (сервер / клиент кэшировано) изображений или других ресурсов. Чтобы предотвратить это, попробуйте выполнить фильтрацию без необходимости доступа к вашей файловой системе. Отфильтруйте как можно больше, используя регулярное выражение. Самый простой способ сделать это, изменив часть пути URI на что-то уникальное, например example.com/u=somesite.com
или даже example.com/p/somesite.com
(p для прокси)).
Ваши тесты будут намного быстрее, если все, что вам нужно сделать, это сопоставление с шаблоном регулярного выражения, а не два теста на существование файла (пример для example.com/p/somesite/etc/....
):
RewriteCond %{REQUEST_URI} ^/p/
RewriteRule ....
Обновление: немного расширено и добавлен небольшой пример
PS: даже если вы не хотите менять текущую краткую схему URI, вы можете временно использовать этот шаблон, чтобы проверить, меняет ли он производительность в лучшую сторону.