Что значит директива RewriteCond в Apache?

Рассмотрим пример:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index.php [L]

Директивы RewriteCond задают условия для, следующей после них, директивы RewriteRule. Т.е. сами по себе они не применяются, после них должна идти директива, на которую они влияют.

В частности !-f требует, чтобы правило RewriteRule применялось только в том случае, если запросу не соответствует физически существующий файл, а !-d — запрос не должен применяться, если запрашивается физически существующая папка. Таким образом, правило в RewriteRule, следующее за этими директивами будет касаться только виртуальных URL для которых нет папки или файла на диске сервера.

Инструменты для оптимизации работы веб-сайта

PageSpeed Insights

Google PageSpeed ​​— это семейство инструментов от Google Inc, разработанное для оптимизации работы веб-сайта. Он был представлен на конференции разработчиков в 2010 году.

Инструменты эффективной веб-разработки

Пакетные менеджеры

Bower

Популярный менеджер для клиентского JavaScript, который занимается установкой пакетов вместе с их зависимостями.

Composer

Популярный пакетный менеджер для PHP, который предоставляет средства по управлению зависимостями в приложении.

Библиотеки JavaScript

JQuery

Библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API для работы с AJAX.

JQuery UI

Библиотека JavaScript с открытым исходным кодом для создания насыщенного пользовательского интерфейса в веб-приложениях, часть проекта jQuery. Построена поверх главной библиотеки jQuery и предоставляет разработчику упрощенный доступ к её функциям взаимодействия, анимации и эффектов, а также набор виджетов.

Фреймворки JavaScript

Backbone.js

JavaScript-фреймворк, основанная на шаблоне проектирования Model-View-Presenter (MVP), предназначена для разработки веб-приложений с поддержкой RESTful JSON интерфейса.

Angular.js

Открытая и свободная платформа для разработки веб-приложений, написанная на языке TypeScript, разрабатываемая командой из компании Google, а также сообществом разработчиков из различных компаний.

React.js

JavaScript-фреймворк с открытым исходным кодом для разработки пользовательских интерфейсов. React разрабатывается и поддерживается Facebook, Instagram и сообществом отдельных разработчиков и корпораций.

Vue.js

JavaScript-фреймворк с открытым исходным кодом для создания пользовательских интерфейсов. Легко интегрируется в проекты с использованием других JavaScript-библиотек.

CSS фреймворки

Bootstrap

Свободный набор инструментов для создания сайтов и веб-приложений. Включает в себя HTML- и CSS-шаблоны оформления для типографики, веб-форм, кнопок, меток, блоков навигации и прочих компонентов веб-интерфейса, включая JavaScript-расширения.

Foundation

Предоставляет адаптивную сетку и компоненты HTML, CSS UI, шаблоны и фрагменты кода, включая типографику, формы, кнопки, навигацию и другие элементы интерфейса, а также дополнительные функции, предоставляемые расширениями JavaScript.

CSS препроцессоры

Less

Надстройка над CSS. Динамический язык стилей.

Sass

Модуль, включенный в Haml. Это метаязык на основе CSS.

Compass

CSS фреймворк с открытым исходным кодом, который использует язык таблиц стилей Sass, чтобы сделать написание таблиц стилей мощнее и проще.

Сборщики проектов

Grunt

Менеджер задач для автоматического выполнения рутинных операций, написанный на языке программирования JavaScript. Программное обеспечение использует командную строку для запуска задач, определённых в файле Gruntfile.

Gulp

Менеджер задач для автоматического выполнения часто используемых задач, написанный на языке программирования JavaScript. Программное обеспечение использует командную строку для запуска задач, определённых в файле Gulpfile. Создан как ответвление от проекта Grunt, чтоб взять из него лучшие практики.

Brunch

Строит, связывает, компилирует, объединяет и сокращает ваше HTML-приложение очень простым способом.

Mimosa

Быстрый инструмент сборки для современного веб-разработки.

Автотесты

PHPUnit

Является структурой модульного тестирования для языка программирования PHP.

Mocha

JavaScript тест-фреймворк, который можно запускать как на node.js, так и в браузере, удобен для асинхронного тестирования.

Selenium

Инструмент для автоматизации действий веб-браузера. В большинстве случаев используется для тестирования Web-приложений, но этим не ограничивается.

Browsersync

Ускоряет процесс тестирования приложений в различных браузерах, синхронизируя URL-адреса, взаимодействия и изменения кода на нескольких устройствах.

Если вы знаете другие интересные инструменты для веб-разработки, пишите в комментариях.