gpt4 book ai didi

laravel - 如何启用在子域中工作的Laravel应用程序来处理来自另一个子域的请求,而无需在浏览器中更改URL?

转载 作者:行者123 更新时间:2023-12-03 16:19:07 27 4
gpt4 key购买 nike

我的Laravel应用程序在admin子域中工作:

admin.mysite.com
我想让我的Laravel应用程序也能够处理来自另一个子域的请求;例如 client.mysite.com。我正在尝试为此使用 Apache Rewrite功能;因此,我在“客户端”子域的主目录中创建了以下 .htaccess文件:
# file: /client/public/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/?([a-zA-Z][a-zA-Z0-9]*)/?(.*)$ https://admin.mysite.com/bu/$1/$2 [L,NC]
</IfModule>
那行得通,但是我绝对不希望在浏览器中更改URL。为此,我尝试 [P] flag失败。最终,我删除了 https://部分以避免重定向*:
RewriteRule ^/?([a-zA-Z][a-zA-Z0-9]*)/?(.*)$  admin.mysite.com/bu/$1/$2 [L,NC]
但是然后,我得到以下错误:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.


如何解决该错误并使之正常工作?而且,这是完成这项任务的正确方法吗? (它可以与POST一起使用吗?还有其他更好的解决方案吗?)

*如果您使用 substitutionRewriteRule中启动 https://参数,它将引起重定向(就像使用 [R]标志的外部重定向一样)。这将导致浏览器发出新请求,从而更改地址栏中显示的URL。
另外,请考虑我的应用程序位于共享主机上,因此我可能无法访问某些低级功能。

最佳答案

DOCUMENT_ROOTclient.mysite.com设置为指向主Laravel应用程序所在的目录(在您的情况下,将其设置为/admin/public)。然后利用Laravel中的subdomain routing工具;可以通过调用 domain() 方法来指定子域:

Route::domain('client.mysite.com')->group(function () {
Route::get('{username}', function ($username) {
//
});
});

关于laravel - 如何启用在子域中工作的Laravel应用程序来处理来自另一个子域的请求,而无需在浏览器中更改URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67344219/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com