Я пытаюсь заставить Laravel работать с сценарием, отличным от Laravel.
Мне нужно, чтобы Laravel обрабатывал только маршруты, заданные в файле web.php, и позволял обрабатывать все, что не определено, моим legacy_index.php, отличным от laravel-PHP.
Это настройки папки, которые у меня есть в публичном доступе. legacy_index.php принадлежит моему сценарию, отличному от laravel-php. В скрипте legacy_index.php есть алгоритм разбора URL. Я хочу, чтобы Laravel разрешил мне использовать legacy_index.php , если путь, к которому я пытаюсь получить доступ, не объявлен в маршрутах, но без отображения файла legacy_index.php в связь.
В качестве примера: Laravel будет обрабатывать эти маршруты:
- 127.0.0.1:8000/api/getUserData
- 127.0.0.1:8000/api/getAppointments
Но проигнорирует эти маршруты:
- 127.0.0.1:8000/mail
- 127.0.0.1:8000/user-profile
И позволит моему legacy_index.php обрабатывать маршрутизацию для этих двух.
Я попытался отредактировать файл .htaccess, пытаясь перенаправить на эти ссылки из маршрутов, но ничего не сработало.
Кто-нибудь делал это раньше и есть какие-нибудь советы / указатели? Я разрабатываю в Windows, использую Laravel 8.42.
2 ответа
Похоже, что ваши маршруты аккуратно идентифицируются простым правилом, что если они начинаются с "/ api", вы хотите, чтобы Laravel index.php обрабатывал их, но если это не так, вы хотите, чтобы legacy_index.php обрабатывал их. Поэтому добавление еще одного правила условной перезаписи в .htaccess может быть одним методом.
...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/api/(.+)
RewriteRule ^ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index_legacy.php [L]
Перенос устаревших веб-приложений на Laravel может быть вам полезным. См. Step Three: Hand Off to Legacy Framework
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.