Метод именованного маршрута Laravel не создает псевдоним хост-сервера (apache) при создании URL-адреса на просмотре

#laravel #apache #laravel-routing

Вопрос:

Я хотел отправить электронное письмо с кнопкой со ссылкой на страницу, на которую я хотел перенаправить получателя. У меня есть этот маршрут с именем web.php в файле маршрута:

 Route::get('/', [ProbationPeriodController::class, 'index'])-gt;name('Probation.index');  

и я добавил этот код для кнопки в своем представлении электронной почты:

 lt;a href="{{route('Probation.index')}}" target="_blank"gt;Take Actionlt;/agt;  

Я разместил свое приложение на сервере apache в Windows с ярлыком псевдонима apps , и конфигурация работает нормально. Я также настроил .htaccess файл так, чтобы он отражал псевдоним, и он отлично работает во всем приложении. Вот мой файл .htaccess:

 lt;IfModule mod_rewrite.cgt; lt;IfModule mod_negotiation.cgt;  Options -MultiViews -Indexes lt;/IfModulegt;  RewriteEngine On  RewriteBase /apps/  # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]  # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (. )/$ RewriteRule ^ %1 [L,R=301]  # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]  # Add /apps/ After The IP Address or Domain name RewriteCond %{REQUEST_URI} !^/apps RewriteRule ^(.*)$ /apps/$1 [L]  

Проблема возникает, когда я использую именованный маршрут Probation.index в представлении электронной почты. Электронное письмо отправляется нормально, но когда получатель нажимает на кнопку, он выдает им URL-адрес без псевдонима. Я ожидаю этого: http://example.com/apps/probation но результат опускает apps и показывает http://example.com/probation . Любые предложения приветствуются!

Комментарии:

1. пробовать route('Probation.index','apps')

2. Вам нужно добавить env var APP_URL — маршрутизатор определяет хост из этого.

Ответ №1:

@Maksim Спасибо тебе. Это решило проблему. Я хотел бы, чтобы вы написали ответ, а не комментарий, чтобы я мог одобрить его как принятый ответ и поддержать вас. Я изменил свой .env файл и обновил APP_URL его до соответствующего префикса моих маршрутов.