Префиксы маршрутов Laravel - Subdomain приводят к тому, что другие маршруты не возвращают «Не найдено» - PullRequest
0 голосов
/ 03 сентября 2018

[ПРИМЕЧАНИЕ] - Эта проблема была обнаружена из-за неправильной конфигурации Apache. Я отправил ответ, который объясняет, что я сделал не так. Надеюсь, это поможет!


Я начинаю проект с Laravel, и я начал с создания общих маршрутов. Я хочу создать структуру запроса, чтобы URL-адреса example.com переходили на обычные маршруты, admin.example.com - на панель администратора моего приложения, а {workspace}.example.com - на динамический маршрут для личных рабочих областей моих пользователей.

В настоящее время у меня есть следующая структура маршрутизации:

Route::group(array('domain' => 'admin.example.com'), function() {

    Route::get('/', function() {
        echo 'This route works fine';
    });

    Route::get('/test', function() {
        // This route doesn't work...
        echo 'Test';
    });

});


Route::group(array('domain' => '{workspace}.example.com'), function() {

    Route::get('/', function() {
        echo 'This route works fine';
    });

    Route::get('/test', function() {
        // This route doesn't work...
        echo 'Test';
    });

});


Route::group(array('domain' => 'example.com'), function() {

    Route::get('/', function() {
        echo 'This route works fine';
    });

    Route::get('/test', function() {
        // This route doesn't work...
        echo 'Test';
    });

});

Как видите, у меня есть три группы маршрутизации. Первый предназначен для URL-адресов с префиксом администратора (чтобы гарантировать, что admin.example.com не будет ошибочно принят за префикс рабочего пространства). Существует префикс рабочей области, а затем, наконец, группа маршрутов без префиксов.

Как указано в коде, все маршруты Route::get('/', ... работают нормально, однако все, что не является рутом, не работает. Я получаю 404 ошибки при попытке перейти на example.com/test (и все остальные доменные префиксы).

Что я могу сделать с моей маршрутизацией, чтобы исправить это и заставить работать маршруты Route::get('/test', ..., а не только / маршруты?

Очень ценится!

1 Ответ

0 голосов
/ 03 сентября 2018

Эта проблема была вызвана неправильной настройкой Apache, а не маршрутизацией.

Чтобы избежать подобных проблем в будущем, убедитесь, что для AllowOverride установлено значение All в вашем проекте <Directory /var/www/myProject/public>, блокирующем файл apache.conf, как показано ниже:

<Directory /var/www/myProject/public>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...