Просмотр полной версии : страница 404
Здрасьте, ребята всю голову уже поломал себе. Трабла такова - typo3 установлен не в корень сайта, а в папку, например - www.server.ru/pages/
Установлен и настроен realurl, все работает.
НО, никак не могу заставить систему генерить мою страницу 404(создана в бэкенде, как и все другие, доступна через урл, например - www.server.ru/pages/404).
Настройки
$TYPO3_CONF_VARS['FE']['pageNotFound_handling_statheader'] = 'HTTP/1.1 404 Not Found';
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = "http://www.server.ru/pages/404/";
И еще непонятно куда .htaccess ложить - в корень сайта или в папку /pages. Пробовал и туда и туда, все равно не работает, а конкретно настроить .htaccess тяму не хватает. Мне кажется что и 404 не генерится из-за этого .htaccess
Здравствуйте, Вы что, создали для 404 физическую папку pages?
Мне кажется, что лучше в $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] зажать id страницы с шаблоном для 404
т.е.
$TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 123;
нет папка pages - это папка в корне домена, а в ней уже весь typo3 установлен. 404 создана как и все остальные страницы сайта в бэкэнде в дереве страниц. Через id зажимал - результат тотже.
Мне кажется что тут с .htaccess играть надо, но как чего и куда в этом файле я не знаю
Сейчас .htaccess у меня такие - тот, что в корне сайта - RewriteEngine On
RewriteRule .* /pages/index.php [L],
тот, что в папке с typo3 (то есть в pages) - RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php
Работает все нормально, но мою 404 НЕ выдает, если по неверному адресу обращаться
Неужели ни у кого мыслей никаких? Хоть какую бы наводку...
Да вот у меня в realurl конфиге всё решает эта строчка:
$TYPO3_CONF_VARS["FE"]["pageNotFound_handling"] = 'READFILE:fileadmin/templates/html/404.html';
OK, по поводу этой строчки штука такая - ежели я ввожу правильный путь до хтмл файла, то вываливается 404 от хостера. Если же я пропишу READFILE по неправильному пути или до несуществующего файла, то тут обработчик тайпо3 тут как тут - в красной рамке на темно-сером фоне "не могу найти файл 404.html по такому то пути".
Вот так...
Т.е. если залить какой то реьд файл(правильный путь) и открыть его в браузере - то получаем на выходе 404 от хостера? (если так то это особенность хостера - права или еще что то)
Странная ситуация.
Ну во-первых, спасибо, за ответы.
По файлу - нет вы немного неправильно поняли. Допустим, в папке файладмин я создал этот реьд файл (fileadmin/404.html). Если его в урл вбить то он откроется. Если также ту самую 404 которая была создана в дереве страниц вбить в урл то тоже она откроется.
НО - при указании в локалконф READFILE:fileadmin/404.html и попытке перейти по несуществующему адресу в фронте- открывается 404 хостера.
ВНИМАНИЕ - если я указываю в READFILE:fileadmin/abracadabra.html(он НЕ существует физически), то при попытке перейти по несуществующему адресу в фронте вылазит обработчик тупо3 и говорит что он не может найти файл "fileadmin/abracadabra.html"
dmartynenko
27.08.2012, 13:00
Мне кажется что вам в ваш первый .htaccess нужно тоже добавить строчки:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
Имено они определяют что если для переданного URL сервер не может найти файл или папку, то передает URL на обработчик index.php, а не выдает свою собственную страчнику 404.
OK пишу так - RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /pages/index.php [L]
Теперь при обращении к examle.com вываливается хостерная 403 доступ запрещен.
При обращении к example.com/pages сайт работает.
При обращении к examle.com/pages/dshdfgf (т.е. к несуществующей) опять 404 хостера.
dmartynenko
28.08.2012, 18:09
А если так на первом уровне сделать?
RewriteEngine On
RewriteBase /pages/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* /pages/index.php [L]
Не помогло... Результат тот же...
Вообщем, не получается никак...
Придется из папки выселяться в корень...:(
Интересно много ли перенастраивать придется, уже и не помню всего?...
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot