у меня есть этот файл .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]
Да, этот проект может быть глупым, но я делаю его для обучения
ErrorDocument
... - person Dekel   schedule 01.01.2017ErrorDocument
, и это не помогает, поэтому и спрашиваю - person Mads Jensen   schedule 01.01.2017rewrite
? Нет смысла использовать оба вместе - person Dekel   schedule 01.01.2017localhost/home
запрашивает файлhome.php
, но когда вы вводитеlocalhost/users/profile
, он должен запрашивать файл в папке пользователей после profile.php. - person Mads Jensen   schedule 01.01.2017