【问题标题】:sub-domain routing in laravellaravel 中的子域路由
【发布时间】:2013-10-11 17:07:54
【问题描述】:

我刚刚在 app.mydomain.co 的开发服务器上放了一个练习 laravel 应用

我查看了文档,并像这样用子域组包装了路由

 <?php

    /*
    |--------------------------------------------------------------------------
    | Application Routes
    |--------------------------------------------------------------------------
    |
    | Here is where you can register all of the routes for an application.
    | It's a breeze. Simply tell Laravel the URIs it should respond to
    | and give it the Closure to execute when that URI is requested.
    |
    */
    Route::group(array('domain' => 'app.mydomain.co'), function()
    {
    Route::get('/', array('as'=>'home', 'uses'=>'QuestionController@getIndex'));
    //Route::get('create', array('as'=>'create', 'uses'=>'UserController@getCreate'));
    //Route::get('login', array('as'=>'login', 'uses'=>'UserController@getLogin'));

    /*
        Define RESTful Controllers
    */
        Route::controller('user', 'UserController');
        Route::controller('questions', 'QuestionController');
    });

主页工作正常,但其余路线是 404 未找到错误,所以显然我做错了什么,有什么想法吗?

这是 php artisan 路由的输出,其中域替换为 app

+--------------+--------------------------------------------------------+------+-------------------------------------+----------------+---------------+
| Domain       | URI                                                    | Name | Action                              | Before Filters | After Filters |
+--------------+--------------------------------------------------------+------+-------------------------------------+----------------+---------------+
| qapp.app.co | GET /user/index/{v1}/{v2}/{v3}/{v4}/{v5}               |      | UserController@getIndex             |                |               |
| qapp.app.co | GET /user                                              |      | UserController@getIndex             |                |               |
| qapp.app.co | GET /user/create/{v1}/{v2}/{v3}/{v4}/{v5}              |      | UserController@getCreate            |                |               |
| qapp.app.co | POST /user/store/{v1}/{v2}/{v3}/{v4}/{v5}              |      | UserController@postStore            |                |               |
| qapp.app.co | GET /user/login/{v1}/{v2}/{v3}/{v4}/{v5}               |      | UserController@getLogin             |                |               |
| qapp.app.co | POST /user/login/{v1}/{v2}/{v3}/{v4}/{v5}              |      | UserController@postLogin            |                |               |
| qapp.app.co | GET /user/logout/{v1}/{v2}/{v3}/{v4}/{v5}              |      | UserController@getLogout            |                |               |
| qapp.app.co | GET /user/{_missing}                                   |      | UserController@missingMethod        |                |               |
| qapp.app.co | GET /questions/index/{v1}/{v2}/{v3}/{v4}/{v5}          |      | QuestionController@getIndex         |                |               |
| qapp.app.co | GET /questions                                         |      | QuestionController@getIndex         |                |               |
| qapp.app.co | POST /questions/store/{v1}/{v2}/{v3}/{v4}/{v5}         |      | QuestionController@postStore        |                |               |
| qapp.app.co | GET /questions/show/{v1}/{v2}/{v3}/{v4}/{v5}           |      | QuestionController@getShow          |                |               |
| qapp.app.co | GET /questions/edit/{v1}/{v2}/{v3}/{v4}/{v5}           |      | QuestionController@getEdit          |                |               |
| qapp.app.co | PUT /questions/update/{v1}/{v2}/{v3}/{v4}/{v5}         |      | QuestionController@putUpdate        |                |               |
| qapp.app.co | GET /questions/your-questions/{v1}/{v2}/{v3}/{v4}/{v5} |      | QuestionController@getYourQuestions |                |               |
| qapp.app.co | GET /questions/{_missing}                              |      | QuestionController@missingMethod    |                |               |
|              | GET /                                                  | home | QuestionController@getIndex 

当我查看 apache 错误日志时,它似乎在 laravel 公用文件夹中查找与 php 查询相关的文件或目录,因此如果我尝试使用 url qapp.app.co 访问问题控制器方法显示/questions/show/14 错误是文件不存在:/var/www/app/public/questions

【问题讨论】:

  • 您没有在路由中定义任何参数来存储子域,所以我根本看不到使用子域路由的意义。子域路由旨在用于子域。示例: Route::group(array('domain' => '{language}.mydomain.co'), function() { //可能在这里更改全局语言 ... //App::setLocale($language) ; //.. 或者只是将它传递给路由/控制器 Route::get('user/{id}', function($language, $id) { /* ... */ }); });
  • 我只是希望能够从 app.mydomain.co 正常使用该应用
  • @Ir1sh 你解决了吗?
  • @aaronjbaptiste 还没有发现问题。

标签: php laravel laravel-4


【解决方案1】:

我可以通过在虚拟主机中将 AllowOverride 设置为 All 来解决我的问题。也许它也对你有用?见http://laracasts.com/forum/351-how-do-you-install-laravel-into-a-subdomain

【讨论】:

    【解决方案2】:

    主页工作正常,但其余路线未发现错误,所以显然我做错了什么

    这已经给你一个提示,你的配置实际上有什么问题。该路线的优先级从上到下,因此从技术上讲,您应该在底部(而不是顶部)定义“/”路线。

    【讨论】:

    • 谢谢,但移动主路由的定义没有任何区别,我仍然收到 404 错误
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 2020-01-04
    • 2016-09-18
    • 2016-09-25
    • 2015-09-10
    • 1970-01-01
    • 2014-08-03
    相关资源
    最近更新 更多