Как сделать, чтобы пользователя кидало на главную, когда он переходит в несуществующий файл/каталог? А то на рег.ру вот это показывает, я хочу чтобы просто на главную перекидывало.
index.php PHP: <?php declare ( strict_types = 1 ); error_reporting ( E_ALL ); $path = parse_url ( $_SERVER['REQUEST_URI'], PHP_URL_PATH ); if ( file_exists ( $path ) ) { require $path; } else { echo 'страница не найдена'; } .htaccess PHP: AddDefaultCharset UTF-8 DirectoryIndex index.php 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]
Не надо так делать. Просто выводите свою 404-ую. Ее вывод можно настроить по аналогии с единой точкой входа или при помощи директивы ErrorDocument 404. --- Добавлено --- P.S. В первом случае статус 404 нужно выдавать самостоятельно. --- Добавлено --- P.P.S. Доп. условия вроде показанного выше в такой точке входа не нужны. Условие уже указано в конфиге сервера: Код (Text): RewriteCond %{REQUEST_FILENAME} !-f Т.е. управление будет передаваться в точку входа только при отсутствии запрашиваемого файла.
@MouseZver, для ТСа сейчас это данность (ЧПУ у него могут быть построены на основе ФС). Усложнить фронт он всегда успеет. Только торопиться не нужно, чтобы не получились «открытые ворота» вроде тех, что ты показал.
Я так понял, самый лучший способ - это RewriteRule ^404/?$ error404.php [L,QSA] errordocument 404 /error404.php