URL 生成器将 "localhost" 放在 Laravel 中的域之前
URL generator putting "localhost" before domain in Laravel
我一直在尝试使用 Laravel 中的 signed URLs 通过电子邮件向用户发送验证 link。它似乎工作正常,但是 link 在使用 URL facade 构建时出现错误。
public function toMail($notifiable)
{
$url = URL::signedRoute('confirm', ['user' => $this->user->id]);
return (new MailMessage)
->subject('Activate your email address')
->line('In order to use the application, please verify your email address.')
->action('Activate your account', $url)
->line('Thank you for using our application!');
}
在电子邮件中,link 看起来像:
http://localhost/mydomain.com/confirm/14?signature=3ba4d86827717440f70a3b2f60c913b6e84d550cb9fce8de04a8ba359833ac7c
"localhost" 部分不应该存在。但是,如果我在 URL 栏中手动删除它,我相信签名的 URL 东西是我操纵的 URL 并给我一个 401 错误。我 运行 在本地主机环境中使用,但我使用 Laragon 的自动虚拟主机,这样我仍然可以 运行 使用域。
有什么建议吗?
变化:
APP_URL=example.com
收件人:
APP_URL=http://example.com
我想不指定 "http://" 会使它在前面附加 localhost。希望这对某人有所帮助!
有时,如果您在虚拟环境或 docker 容器中工作,仅设置 APP_URL
是行不通的。请尝试以下步骤。
第 1 步:在 .env
文件中设置您的域。 (不要忘记双引号)
APP_URL="http://yourdomain.com"
第 2 步:在生成签名路由之前添加以下行
URL::forceRootUrl(\config('app.url'));
第 3 步:(可选)如果要强制执行 https
方案
,请添加以下行
URL::forceScheme('https');
我一直在尝试使用 Laravel 中的 signed URLs 通过电子邮件向用户发送验证 link。它似乎工作正常,但是 link 在使用 URL facade 构建时出现错误。
public function toMail($notifiable)
{
$url = URL::signedRoute('confirm', ['user' => $this->user->id]);
return (new MailMessage)
->subject('Activate your email address')
->line('In order to use the application, please verify your email address.')
->action('Activate your account', $url)
->line('Thank you for using our application!');
}
在电子邮件中,link 看起来像:
http://localhost/mydomain.com/confirm/14?signature=3ba4d86827717440f70a3b2f60c913b6e84d550cb9fce8de04a8ba359833ac7c
"localhost" 部分不应该存在。但是,如果我在 URL 栏中手动删除它,我相信签名的 URL 东西是我操纵的 URL 并给我一个 401 错误。我 运行 在本地主机环境中使用,但我使用 Laragon 的自动虚拟主机,这样我仍然可以 运行 使用域。
有什么建议吗?
变化:
APP_URL=example.com
收件人:
APP_URL=http://example.com
我想不指定 "http://" 会使它在前面附加 localhost。希望这对某人有所帮助!
有时,如果您在虚拟环境或 docker 容器中工作,仅设置 APP_URL
是行不通的。请尝试以下步骤。
第 1 步:在 .env
文件中设置您的域。 (不要忘记双引号)
APP_URL="http://yourdomain.com"
第 2 步:在生成签名路由之前添加以下行
URL::forceRootUrl(\config('app.url'));
第 3 步:(可选)如果要强制执行 https
方案
URL::forceScheme('https');