Ошибка 404 возникает, когда сервер не может найти запрашиваемый ресурс. В случае с вашим PHP-файлом, который работал на локальном сервере, но не работает на хостинге, возможны несколько причин:
1. **Неправильный путь к файлу**
Убедитесь, что структура папок на хостинге соответствует той, что была локально, и пути к файлам указаны верно.
2. **Регистрозависимость**
Некоторые хостинги чувствительны к регистру символов в путях и именах файлов. Если локально использовалась Windows, где не учитывается регистр, а хостинг использует Linux, где регистр важен, проверьте, чтобы имена файлов и папок соответствовали точно тем, которые используются в коде.
3. **Неправильная конфигурация сервера**
Убедитесь, что сервер правильно настроен для обработки PHP-файлов. Возможно, на хостинге не установлен PHP или настроены неверные версии PHP.
4. **.htaccess**
Если на локальном сервере использовались специальные правила перенаправления в файле `.htaccess`, то убедитесь, что они были перенесены на хостинг и что модуль mod_rewrite включен на сервере.
Чтобы исправить проблему, выполните следующие шаги:
- Убедитесь, что файл существует на хостинге и его путь указан правильно. Проверьте регистр букв в имени файла и пути.
- Уточните, поддерживает ли ваш хостинг версию PHP, написания кода, и если требуется, обновите версию PHP через панель управления хостинга.
- Проверьте конфигурацию `.htaccess` на предмет правил перенаправления и перепишите правила, если необходимо.
- Если проблема заключается в скачивании PHP-файла вместо его выполнения, возможно, есть проблема с настройками MIME-типов на сервере. Обратитесь к службе поддержки хостинга.
Относительно настройки перенаправления с кнопки "Войти" на страницу регистрации, обычно это реализуется через HTML форму, где атрибут `action` указывает на ваш PHP-скрипт, который затем обрабатывает данные формы. Если кнопка реализована через ссылку, проверьте атрибут `href` на предмет правильности пути.
Если вы хотите реализовать программное перенаправление на стороне сервера на PHP, можно использовать функцию `header` для этого:
```php
header('Location: registration.php');
exit;
```
Убедитесь, что перед вызовом `header` не было никакого вывода в браузер (включая пробельные символы), так как это нарушит возможность отправки заголовков.
Если у вас возникают дополнительные проблемы или аспекты не решены, пожалуйста, предоставьте больше информации о конкретных ошибках или конфигурации сервера.