mod_rewrite и RewriteRule блокируют меня от добавления страницы с ошибкой

у меня есть этот файл .htaccess, но мне нужна страница с ошибкой 404. но когда я добавляю к нему ErrorDocument, я ничего не делаю. если я напишу localhost:8888/home/somepage-there-not-exist.

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

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ /$1 [L,R=301]

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

он находится в корневом том же каталоге, что и папки app и public.

В папке public тоже есть это:

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

    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}]   
</IfModule>

Я знаю код coveret /something для запроса файлов, но когда файл не выходит, он должен получить ошибку 404.

Это из корня laravel .htaccess после некоторых мне нравится какая-то часть фреймворка, но я хочу сделать блок кода там только для того, чтобы сделать сайт безопасным, а не фреймворк (не хочу снова изобрести велосипед). Но мне все еще нужно, чтобы он понимал URL-адреса таким образом, потому что это делает его SEO и открытым, поэтому для URL-адреса нет правил.

Итак, у меня есть студенческий код laravel, и я понимаю, как он работает, но эта часть о 404, 403 и т. д. настолько сложна в laravel и пересекает так много файлов, что у вас нет возможности понять код и узнать как laravel знает, когда это ошибка 404.


ОБНОВЛЕНИЕ
Я нашел это ErrorDocument-VS-RewriteRule после того, что я вижу, я могу использовать

RewriteRule ^(.*)$ - [L,R=404]
ErrorDocument 404 /errors/errors.php

вроде работает, но не на 100%. ErrorDocument не работает, когда вы выполняете 2 шага в примере: localhost/step1/step2, и он также сломал его, поэтому, когда сайт существует, он все равно показывает страницу с ошибкой. я попытался установить код над и под RewriteRule ^(.*)/$ /$1 [L,R=301]


Да, этот проект может быть глупым, но я делаю его для обучения


person Mads Jensen    schedule 01.01.2017    source источник
comment
Поместите полное содержимое файла htaccess в вопрос   -  person Dekel    schedule 01.01.2017
comment
это полный код моего htaccess   -  person Mads Jensen    schedule 01.01.2017
comment
Я не вижу там ErrorDocument...   -  person Dekel    schedule 01.01.2017
comment
я пытаюсь вставить в него ErrorDocument, и это не помогает, поэтому и спрашиваю   -  person Mads Jensen    schedule 01.01.2017
comment
Вы знаете, что делает текущая часть rewrite? Нет смысла использовать оба вместе   -  person Dekel    schedule 01.01.2017
comment
а как тогда проверить на ошибку 404?   -  person Mads Jensen    schedule 01.01.2017
comment
ты не ответил на мой вопрос   -  person Dekel    schedule 01.01.2017
comment
ну я не так много знаю об этом, я новичок в апаче   -  person Mads Jensen    schedule 01.01.2017
comment
Зачем вы вообще используете этот код, если не понимаете, что он делает?   -  person Dekel    schedule 01.01.2017
comment
потому что мне нужна его функция, что я делаю на 100%, я не знаю   -  person Mads Jensen    schedule 01.01.2017
comment
какая функция вам нужна?   -  person Dekel    schedule 01.01.2017
comment
Таким образом, папка типа localhost/home запрашивает файл home.php, но когда вы вводите localhost/users/profile, он должен запрашивать файл в папке пользователей после profile.php.   -  person Mads Jensen    schedule 01.01.2017