Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как бы движок, но дико втыкает [2]
Покинул форум
Сообщений всего: 16
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
tsoi85
Страницы со слешем, включая корень, стали открываться. Но по-прежнему, выводится пустая страница вместо 404 и выводятся /index.(html|php). Кириллица в урлах перестала выводится, выводится пустая страница, видимо движок не может разродится 404.
Например обращение к /articles/index.php - Возвращает 404.
/articles/index.html тоже самое что и /articles/horosho.html
Можно в скрипте указать по умолчанию, не index, а например default и переименовать соответственно в папке data/*.
tsoi85 Большое спасибо за помощь!
Это не действует Ваш .htaccess на Ваш /index.php. В моем первоначальном варианте, а также в предложенных с массивами, на запросы "/index.html", "/index.php" реально выводится 404 со своим содержанием, хотя файл /index.php существует. Можете сами убедиться, проделав несложный эксперимент.
Цитата:
Например обращение к /articles/index.php - Возвращает 404.
Наверное, пытается возвратить, но у него не получается.
Цитата:
/articles/index.html тоже самое что и /articles/horosho.html
Не понял. В /articles/index.html содержится список статей со ссылками на соответствующие файлы, /articles/horosho.html это одна из статей, содержащаяся в этом списке. Два разных файла, две разные страницы со своим уникальным содержанием.
Цитата:
Можно в скрипте указать по умолчанию, не index, а например default и переименовать соответственно в папке data/*.
PHP:
скопировать код в буфер обмена
И не будет /articles/index.html
Хотя я считаю это лишним действием.
Это действительно лишнее действие, так как сути дела (дублирование контента) не меняет. Одно и то же содержимое выводится по ТРЕМ адресам: в первом случае - "/", "/index.html", "/index.php"; во втором - "/", "/default.html", "/default.php".
Цитата:
А errors/404.php - не пустой?
Не пустой, открывается и выводится другим вариантом движка.
tsoi85
Отправлено: 14 Августа, 2011 - 16:27:31
Новичок
Покинул форум
Сообщений всего: 63
Дата рег-ции: Июнь 2011
Помог: 10 раз(а)
ok, вариант с Вашим .htaccess
При обращении к /index.(html|php) - теперь 404.
Проблема с показом errors/404.php, думаю теперь также решена.
[Sun Aug 14 01:15:412011][error][client 46.61.1.7] ALERT - tried to register forbidden variable '_REQUEST' through GET variables (attacker '46.61.1.7',file'/usr/home/...../site.ru/html/index.php'), referer: http://site.ru/contacts.html
то попробуйте заменить в .htaccess:
это: RewriteRule ^(.*)$ index.php?_REQUEST=$1 [L]
на это: RewriteRule ^(.*)$ index.php?$1 [L]
возможно перестанет ругаться.
ok
Отправлено: 14 Августа, 2011 - 18:47:38
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
tsoi85
Заработало! Выдает ошибку 404 при обращении к (.*)/index.(html|php). Проблема 404 ошибки решена полностью! Работает быстро, стреляет.
Только перестал перенаправлять с www на без него. Зависает, пустой экран (source).
Покинул форум
Сообщений всего: 16
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
White
Сделал. При обращении без www выводится site.ru. При обращении с www - пустой экран, view source - пусто.
Error log сервера:
[Sun Aug 14 20:10:18 2011] [error] [client 109.165.95.118] PHP Warning: Cannot modify header information - headers already sent by (output started at /usr/home/...../site.ru/html/index.php:1) in /usr/home/...../site.ru/html/ind ex.php on line 5
Line 5 in /index.php:
header("Location: http://site.ru".$_SERVER['REQUEST_URI']);
Подправил url, чтобы не было спама.
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
ok т.е. получается что в HTTP_HOST пусто?
попробуйте echo "host: ".$_SERVER['HTTP_HOST'] в самом начале index.php в корне сайта, после него die()
если отобразится "host: " то в HTTP_HOST действительно пусто, тогда следующая модификация:
Покинул форум
Сообщений всего: 63
Дата рег-ции: Июнь 2011
Помог: 10 раз(а)
ok
ok пишет:
[Sun Aug 14 20:10:18 2011] [error] [client 109.165.95.118] PHP Warning: Cannot modify header information - headers already sent by (output started at /usr/home/...../site.ru/html/index.php:1) in /usr/home/...../site.ru/html/ind ex.php on line 5
Или пробел на первой строке файла, или Utf-8 с BOM.
Поэтому заголовок на пятой строке, не может быть отправлен/изменён.
ok
Отправлено: 14 Августа, 2011 - 20:08:22
Новичок
Покинул форум
Сообщений всего: 16
Дата рег-ции: Авг. 2011
Помог: 0 раз(а)
tsoi85White
Дико извиняюсь, перед <?php было 4 пробела. Убрал их - все пошло, c www перенаправляется!
Курю логи, вроде эрроров нет. Убрал по совету tsoi85 из .htaccess _REQUEST=
и в эррор логе пусто. (Добавление)
Пора подводить итоги конкурса. Всем, принявшим участие, большое спасибо. Отдельное и очень большое спасибо White. Его советы очень помогли.
Несомненным и единственным победителем является tsoi85, создавший прекрасный, быстрый и просто очень красивый скрипт, полностью соответствующий техническому заданию.
Прошу уважаемого tsoi85 прислать мне в личку свои платежные реквизиты, WM или ЯД. Мне легче и проще ЯД, но не принципиально.
Еще раз нереально огромное спасибо tsoi85, жду реквизиты.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.