У меня есть приложение со многими маршрутами маршрутизации, как показано ниже:
F3::route('GET /', 'Main->get_front_page'); F3::route('GET /login/check_for_login', 'Login->check_for_login');
Первый маршрут правильно соответствует. Однако второй маршрут не соответствует, и я получаю 404. Infact, любой маршрут после первого не подходит.
Чтобы усложнить ситуацию, все маршруты работают на моей локальной машине.
Проверьте файл apache .htaccess. Особенно URL-адрес RewriteBase
. Я часто забываю об этом 🙂
Для общего хостинга развертывание без жирной структуры не будет работать, как на локальном сервере. Поэтому вам нужно создать файл .htaccess
# Enable rewrite engine and route requests to framework RewriteEngine On # Some servers require you to specify the `RewriteBase` directive # In such cases, it should be the path (relative to the document root) # containing this .htaccess file # # RewriteBase / RewriteRule ^(tmp)\/|\.ini$ - [R=404] RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L,QSA] RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
создайте файл .htaccess с использованием вышеуказанного кода и поместите файл в корень вашего проекта без жира. Я пробовал это и хорошо работал.