Назад | Перейти на главную страницу

PHP динамически генерирует перенаправления

Недавно я переместил все свои правила из файла .htacess в файл .conf. Теперь, когда я хочу добавить правило перенаправления на свой сайт, мне нужно отредактировать файл .conf и sudo apachectl graceful.

Теперь у меня возникла проблема, заключающаяся в том, что я хочу иметь возможность динамически генерировать свои правила перенаправления из PHP. Раньше, когда у меня был запущен мой файл .htacess, это было относительно просто - просто включите туда файл, которым управляет PHP, и все перенаправления будут работать идеально.

Теперь я все еще могу использовать включаемый файл, но я не уверен (или не уверен в том, что) PHP работает apachectl graceful.

Какое здесь лучшее решение? Насколько я понимаю, с моей текущей настройкой apache обязательно нужно перезапустить, чтобы файл .conf вступил в силу, это правильно? Если я вернусь к использованию .htaccess, могу ли я иметь только один .htaccess в корне домена и запретить apache использовать любые другие файлы .htaccess, чтобы не замедлять работу моего сервера?

... но я не уверен (или доволен) PHP, работающим с изящным apachectl.

Ну точно. Вы даже не должны думать о попытках редактировать конфигурация вашего сервера из PHP. Это даже не должно быть возможным, иначе вы открываете огромную банку червей с точки зрения безопасности.

... когда у меня был запущен мой файл .htacess, это было бы относительно просто - просто включите туда файл, которым управляет PHP, и все перенаправления будут работать отлично.

Вы имеете в виду, позволяя PHP редактировать ваш .htaccess файл? Это также несет потенциальную угрозу безопасности.

Тем не мение, .htaccess или даже конфигурация вашего основного сервера, не обязательно лучшее место для перенаправляет в любом случае (если вы говорите о внешние перенаправления). Эти перенаправления обычно происходят из-за того, что ресурс / страница переместились и больше не существует. В этом случае часто более эффективно обрабатывать перенаправление в коде на стороне сервера (например, PHP), как только вы определили, что в противном случае будет возвращено 404. Перенаправление - это задача с низким приоритетом. Предоставление контента посетителям вашего сайта является более важным приоритетом. Вам не нужно выполнять проверку редиректа при каждом запросе.