
Я пытаюсь определить наилучший способ пересылать множество URL-адресов постоянно с точки зрения производительности и работоспособности. Итак, есть 3 возможных способа, которые я мог себе представить на данный момент:
- .htaccess Правило перезаписи
- Функция заголовка PHP ищет соответствующие URL-адреса в массиве
- Функция заголовка PHP, обращающаяся к базе данных MySql
Речь идет не о переадресации всего домена, а только некоторых URL-адресов доменов. Например, когда названия продуктов меняются счто-нибудькчто-нибудь еще:
www.example.com/something > www.example.com/anything_else
в то время как URL-адреса, такие какwww.example.com/totally_differntостается нетронутым.
решение1
Если вы ищете золотую середину между управляемостью и производительностью, я предлагаю двухэтапный процесс (то же самое мы используем для нашей конфигурации маршрутизации HTTP):
- URL-адреса существуют в базе данных для удобства обслуживания
- Скрипт (bash, PHP, что угодно) создает PHP-скрипт из базы данных и шаблона, определяя массив с исходным путем в качестве ключа и новым путем в качестве значения, затем ищет запрошенный путь к документу и, если он найден, перенаправляет на новый, если нет, выдает ошибку 404. Этот «скрипт создания скрипта» запускается, если база данных изменяется
- Сгенерированный скрипт используется как резервный вариант 404.
Если вы используете HHVM или кэш кодов операций, это происходит невероятно быстро: сам код готов, и все, что нужно сделать, — это выполнить поиск в хеш-таблице.