laravel api 子域映射

Posted

技术标签:

【中文标题】laravel api 子域映射【英文标题】:laravel api subdomain mapping 【发布时间】:2017-04-22 18:17:13 【问题描述】:
Route::group(array('domain' => 'api.domain.com'), function()

    Route::get('/','TwitterController@index');
    Route::get('/gettweets','TwitterController@getTweets');
    Route::get('/viewtweets','TwitterController@viewTweets');
    Route::get('/viewvideos','TwitterController@viewVideos');
);

这是我的 routes.php

我正在调用这个/gettweets 路由,但它说在服务器上找不到/gettweets。使用godaddy linux 共享。 我只能打电话给/ 请求。 我怎样才能让 laravel 阅读这条路线。

【问题讨论】:

你能判断是 Laravel 返回了错误还是通用的 Apache 错误? apache 正在返回此错误 我需要修改htaccess吗 是的,如果您没有正确的 htaccess,就会发生这种情况。最具体地说,我认为这将是 MultiViews example.com 有 index.html 但 api.example.com 由 laravel 托管 【参考方案1】:

您需要指定 godaddy 以使任何子域指向同一点的方式读取通配符。这样做你将使用你的 laravel 应用程序管理子域

https://mx.godaddy.com/help/setting-up-wildcard-dns-3301

【讨论】:

/etc/hosts 和Apache 虚拟主机的帮助下,我在本地机器上创建了api.example.test。我该如何解决这个问题?【参考方案2】:

    必须在您的服务器上启用 Mod_rewrite。 Check this post

    检查公用文件夹(您的域指向的)中的 .htaccess 文件,它应该包含在下面

    选项 - 多视图

    RewriteEngine On
    
    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]
    
    # Handle Front Controller...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^ index.php [L]
    
    # Handle Authorization Header
    RewriteCond %HTTP:Authorization .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%HTTP:Authorization]
    

如果.htaccess不存在,则在公共目录下创建一个文件。

如果这不起作用,请发表评论。

【讨论】:

以上是关于laravel api 子域映射的主要内容,如果未能解决你的问题,请参考以下文章

未经身份验证的 api laravel 子域

Laravel 子域端点不断重定向并出现 301 错误

Laravel + Vue/axios Api 调用子域 access-control-allow-origin

无法使用 Laravel 4 与子域共享会话

Laravel 与子域共享主机

Laravel 5 Dotenv 用于特定子域