MadMyche
Существует множество способов обработки перенаправлений. Порядок, в котором они находятся, имеет большое значение в том, сколько накладных расходов создается приложением, если таковые имеются; чем меньше накладных расходов, тем большую производительность будет иметь ваш сайт.
1. на уровне сервера (web). Это было бы нормально сделано через .откройте файл. htaccess файл или внутри ASP.NET сайты могут быть через веб.конфиг файл. Преимущество этого метода заключается в том, что он практически не влияет на работу приложения, поэтому вы увидите почти нулевое влияние на производительность. Недостатком этого метода является то, что он выполняется через конфигурационный файл приложения и обычно требует перезапуска приложения.
2. В HTTP-конвейера. Это было бы через модуль (он же крюк, обработчик). Это может быть написано, чтобы перехватить каждый запрос и определить, должны ли мы позволить ему перейти на веб-сайт или нам нужно сделать что-то еще; например, перенаправить, вернуть 404 и т. д. Преимущество заключается в том, что это все еще находится на ранней стадии разработки и оказывает незначительное влияние на производительность, а также является очень мощным. Недостатком этого является то, что это самый трудный метод для эффективной реализации. Это очень мощный вариант и может привести к краху вашего сайта с помощью простой ошибки.
3. Стороны файлового сервера. Каждый файл имеет программный редирект, расположенный внутри него. Очень утомительно поддерживать. Вы также можете использовать это в контроллере MVC. Для этого требуется все приложение.
4. Побочные файл клиента. Любой html-файл имеет в <meta-тег Refresh> элемент в нем. Тот же недостаток, что и вариант на стороне сервера, и он требует, чтобы браузер действительно обрабатывал - наряду с тем фактом, что <meta refresh> может не поддерживаться или отключаться.
Как это сделать с БД. Вы можете реализовать все 4 метода, используя БД. Метод, который вы выберете для реализации вашего решения перенаправления, будет диктовать, как интегрировать БД. Если вы используете файл конфигурации/htaccess, вам нужно будет переписать блок перенаправлений на основе вашей таблицы БД.
Я лично использую метод 2, так как мне нужно было разработать iHttpHandler для целей безопасности в CMS на основе MVC. Я загружаю все редиректы в коллекцию и сканирую ее для каждого запроса. Более ранние версии обращались к БД при каждом вызове, но это создавало накладные расходы, от которых мне нужно было избавиться.