Мои маршруты возвращают ошибки в Laravel, Apache - PullRequest
0 голосов
/ 24 апреля 2018

Всякий раз, когда я пытаюсь использовать маршрут, я получаю «объект не найден» и «ошибка 404». Я использую свой сервер в Manjaro / Arch (локально в любом случае). Кроме того, я впервые использую Laravel.

Я использую Apache для своего сервера. Он работает так, как я могу загрузить страницу Laravel с 127.0.0.1/path/to/public/. Я использовал этот же сервер для других проектов, и у меня не было проблем.

Я даже пытался изменить корень документа на фактический корень, то есть теперь я могу просто запустить, используя 127.0.0.1

Я изменил параметр Разрешить переопределение на Все в моем httpd.conf, что, по-видимому, решает эту проблему для 99% людей. Я убедился, что перезапустил сервер после .conf правок.

my web.php: (этот первый маршрут - единственный код, который я написал для этого проекта)

Route::get('/hello',function(){
    return 'Hello World';
});

Route::get('/', function () {
    return view('welcome');
});

вывод команды php artisan route:list

+--------+----------+----------+------+---------+--------------+
| Domain | Method   | URI      | Name | Action  | Middleware   |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
|        | GET|HEAD | hello    |      | Closure | web          |
+--------+----------+----------+------+---------+--------------+

Из того, какие другие решения этого вопроса я видел, можно предположить, что мой .htaccess правильный:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder.
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller.
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Это не проблема Laravel, я думаю, как будто я запускаю php artisan serve Я могу использовать поиск маршрута, то есть 127.0.0.1:8000/hello напечатает привет мир в моем браузере.

1 Ответ

0 голосов
/ 24 апреля 2018

Пришлось добавить:

LoadModule rewrite_module modules/mod_rewrite.so

до конца моего файла httpd.conf

[править]

Также по какой-то причине пришлось дать разрешение на некоторые файлы. (файлы журналов).

...