0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 15
|
|||||||||||
1 | |||||||||||
.htacess нереврайтит на 404 страницу20.12.2016, 21:27. Показов 1382. Ответов 3
Метки нет (Все метки)
Решил оптимизировать сайт и начал с человеческой переадресацией на 404 страницу, но вот уже неделю ломаю блин голову - условия следующие:
С какого то перепугу, сервак отдает Not Found 404, а не шлет на 404.php Удаляю условия:
Что я только не переделал, но ничего явно не дает правильной переадресации с несуществующего url на 404.php Помогите!!! Добавлено через 22 часа 32 минуты Все также - решения не нашел. Нужна помощь!!!
0
|
20.12.2016, 21:27 | |
Ответы с готовыми решениями:
3
Не получается задать страницу 404 Как изменить страницу 404 в appserv? 404 при том что сервер корректно отдает страницу (nginx+apache) Wordpress - если в “wp-content” нет такого файла, то отдать за место 404 код ответа 403. В htacess может как? |
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||||||
22.12.2016, 00:40 | 2 | |||||
Ты не понял как работает протокол http. Не должно быть никакого редиректа на 404.php.
Псевдокод без лишних деталей: Вот это оставляешь для обработки запросов на index.php
0
|
0 / 0 / 0
Регистрация: 12.10.2011
Сообщений: 15
|
|
04.01.2017, 19:47 [ТС] | 3 |
Спасибо за ответ - попробовал как Вы посоветовали, но когда код ставлю в index.php: если в начало кода - сайт кладет в оффлайн с ошибкой на синтаксис в этом коде, если ставлю в конце то ничего и не происходит - перенаправления на страницу 404.php так и не происходит. Закопипастил сюда содержимое index.php, может и правда не туда ставлю, посмотрите если не сложно.
Код
<? /* ############################################################################################################################################################################# # # # Архитектура загрузки модулей: # # # # Папка с модулями - "/mod" # # все находящиеся в ней папки являются отдельными модулями ( имя папки = имя модуля ) # # # # # # Содержание папки с модулем: # # Папка с модулем содержит в себе 2 основные папки: "front" и "back". # # "front" - папка с данными модуля, которые загружаются во фронтоффисе # # "back" - папка с данными модуля, которые загружаются в админке # # # Структура папки "front": # # папка css - файлы стилей (расширение css, имя - любое) - все соответствующее содержимое будет подключено к проекту # # папка js - файлы скриптов (расширение js, имя - любое) - все соответствующее содержимое будет подключено к проекту # # папка tpl - если файл ИМЯ_МОДУЛЯ.php не найден, то класс будет пытаться найти его в этой папке. # # файл ИМЯ_МОДУЛЯ.php - стартовый файл модуля. Именно его подключат при загрузке модуля # # # # # # Структура папки "back": # # папка css - файлы стилей (расширение css, имя - любое) - все соответствующее содержимое будет подключено в админке # # папка js - файлы скриптов (расширение js, имя - любое) - все соответствующее содержимое будет подключено в админке # # папка manual - (содержит файл ИМЯ_МОДУЛЯ.php, который будет подключен при открытии формы с инструкцией по данному модулю # # ( в файле обязательно должна быть переменная $Myname = 'Русское имя модуля' ) # # папка settings - (содержит файл ИМЯ_МОДУЛЯ.php, который будет подключен при открытии спойлера с настройками модуля на вкладке контента страницы. # # ( в файле обязательно должна быть переменная $Myname = 'Русское имя модуля' ) # # # # # # Все модули, которые должны грузиться на конкретной странице попадают в массив "mod" класса template ( $tpl->mod ) # # Этот массив содержит в себе индексы, имена которых являются id модулей(. # # Каждому такому индексу моответствует массив, в котором данные располагаются след. образом: # # # # ['region'] = регион использование модуля # # ['content'] = сам модуль # # ['name'] = имя модуля # # # ############################################################################################################################################################################# */ /* ############################################################################################################################################################################# # # # архитектура загрузки и работы плагинов # # # # # # РАЗНИЦА МЕЖДУ МОДУЛЯМИ И ПЛАГИНАМИ ТОЛЬКО ТА, ЧТО МОДУЛИ МОЖНО ПОДРУБАТЬ К ЛЮБОЙ СТРАНИЦЕ И ЛЮБОЕ ЧИСЛО РАЗ. ПЛАГИНЫ САМИ РЕШАЮТ, # # КОГДА ИМ ЗАГРУЗИТЬСЯ И НА КАКОЙ СТРАНИЦЕ. ДВИЖОК ПОДКЛЮЧИТ И ЗАПУСТИТ ВСЕ ПЛАГИНЫ, КОТОРЫЕ ЕСТЬ В ПРОЕКТЕ НА КАЖДОЙ СТРАНИЦЕ. # # НАСТРОЙКИ ПЛАГИНА ДЕЙСТВУЮТ НА ВСЕ СТРАНИЦЫ, ТОГДА КАК МОДУЛЬ НАСТРАИВАЕТСЯ НА КОНКРЕТНУЮ СТРАНИЦУ. # # # # # # плагины валяются в папке plugins # # структура дерева папок аналогична с модулями: # # # # # # Папка с плагином содержит в себе 2 основные папки: "front" и "back". # # "front" - папка с данными плагина, которые загружаются во фронтенде # # "back" - папка с данными плагина, которые загружаются в админке # # # # # # Структура папки "front": # # папка css - файлы стилей (расширение css, имя - любое) - все соответствующее содержимое будет подключено к проекту # # папка js - файлы скриптов (расширение js, имя - любое) - все соответствующее содержимое будет подключено к проекту # # папка tpl - если файл ИМЯ_ПЛАГИНА.php не найден, то класс будет пытаться найти его в этой папке. # # файл ИМЯ_ПЛАГИНА.php - стартовый файл плагина. Именно его подключат при загрузке плагина # # # # # # Структура папки "back": # # папка css - файлы стилей (расширение css, имя - любое) - все соответствующее содержимое будет подключено в админке # # папка js - файлы скриптов (расширение js, имя - любое) - все соответствующее содержимое будет подключено в админке # # папка manual - (содержит файл ИМЯ_ПЛАГИНА.php, который будет подключен при открытии формы с инструкцией по данному плагину # # ( в файле обязательно должна быть переменная $Myname = 'Русское имя плагина' ) # # папка settings - (содержит файл ИМЯ_ПЛАГИНА.php, который будет подключен при открытии формы с настройками плагина. # # ( в файле обязательно должна быть переменная $Myname = 'Русское имя плагина' ) # # # # # # # ############################################################################################################################################################################# # */ /* ############################################################################################################################# # # # при необходимости можно очистить буффер шаблона ( аналогичные методы есть для css, js, meta ) # # и подгрузить другой шаблон # # # # $tpl->clearBufferTpl(); # # # # $tpl->loadTpl('anytpl'); # # # ############################################################################################################################# */ /* ############################################################################################################################# # # # замена псевдокода. # # # # ДЛЯ МОДУЛЕЙ: В свойстве "mod" объекта класса "template" содержится многомерный ассоциированный массив # # ( [ имя модуля ] => array( region, content ) ) # # Заменяется соответственно псевдокод "{region-ИМЯ РЕГИОНА}" на контент модуля, который располагается в этом # # регионе, при этом имя региона возвращается обратно для последующих модулей # # # # ДЛЯ СТРАНИЦЫ: Заменяется псевдокод на соответствующие иму величины. # # %{meta_title}% - тег "TILE" # # %{meta_description}% - тег "DESCRIPTION" # # %{meta_keywords}% - тег "KEYWORDS" # # %{meta_lang}% - тег "LANGUAGE" # # %{title}% - заголовок страницы, определяемый тегом H1 перед основным контентом # # %{content}% - контент страницы # # %{regionЧИСЛО}% - заменится на содержание модуля, который грузится в регионе regionЧИСЛО # # # ############################################################################################################################# */ function __autoload($className) { $fname = $_SERVER['DOCUMENT_ROOT'].'/lib/classes/class.'.$className.'.php'; if(file_exists($fname)) include_once($fname); } $config = new config(); $db = new MySql(); $compile = new compile(); $page = new page(); $mmenu = new mmenu(); $tpl = new template(); $compile->compileAll(); $compile->render(); unset( $tpl ); unset( $mmenu ); unset( $page ); unset( $compile ); unset( $db ); if ( page_not_found($_SERVER['REQUEST_URI']) ) { // если по данному запросу ничего нет header("HTTP/1.1 404 Not Found"); // устанавливаем код ответа 404 include '404.php'; // выводим тело ответа exit(); // прекращаем обработку запроса } ?>
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
05.01.2017, 00:35 | 4 |
Я приводил не реальный рабочий код, а псевдокод, показывающий принцип работы, так что естественно что ничего не работает, фунции page_not_found в php нет. Реальный код будет сильно зависеть от проекта.
0
|
05.01.2017, 00:35 | |
05.01.2017, 00:35 | |
Помогаю со студенческими работами здесь
4
Перенаправление на страницу с ошибкой 404 Оцените мою 404 страницу :) Не удается настроить 404 страницу Как сделать страницу 404? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |