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 :: php роутинг без mvc

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
pps88
Отправлено: 21 Мая, 2015 - 09:54:12
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Собственно делаю первый проект на голом php(без MVC и ООП).
Настал момент реализации роутинга.
Есть один основной файл - index.php в который через include подключаются нужные шаблоны в зависимости от контента.
В БД есть часть ЧПУ окончание URL(вдруг пригодится) но саму БД еще могу менять под нужды. Это я к чему - полез googлить, везде MVC или роутеры с ООП, фраемворки. Если старая информация - там все через .. mod_rewrite.
Я не прошу готового решения, хотелось бы услышать общее направление для движения? Заранее спасибо!
 
 Top
Ch_chov
Отправлено: 21 Мая, 2015 - 10:23:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




http://upshots[dot]org/php/php-serio[dot][dot][dot]ly-simple-router
Готовый роутер в 20 строчек кода.
 
 Top
pps88
Отправлено: 21 Мая, 2015 - 12:49:04
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Начал внедрять потихоньку, в этом лесу много дров наломать можно.
Как мне сюда еще прикрутить редирект 301 с www на без www?
Чтобы в конечном итоге было: http://site[dot]ru/

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
 
 Top
pps88
Отправлено: 23 Мая, 2015 - 22:34:17
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




Может глупый вопрос, но мне это важно.
Роутинга у меня нет, в .htacess все направляется на index.php за некоторыми исключениями
При заходе на страницу скрипт ищет соответствие URL в базе данных, там хранятся ЧПУ всех страниц - если находит, то показывает контент.
О том что страницы не оказалось в базе - я проверяю через наличие данных данных в ответе от БД (mysql_fetch_assoc).

Я прописал в коде:

В .htacess в самом верху
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine on
  2. ErrorDocument 404 http://www.yoursite.com/404.php

Сервер отдает ошибку но не грузит указанную страницу а файл index.php

(Отредактировано автором: 23 Мая, 2015 - 22:59:52)

 
 Top
DeepVarvar Супермодератор
Отправлено: 24 Мая, 2015 - 00:00:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




И это нормально. Теперь наведи на той 404-й странице марафет. Воткни пару шуток.
Вот тебе пример для старта полета фантазии: http://proteys[dot]info/404/
 
 Top
LIME
Отправлено: 24 Мая, 2015 - 03:10:34
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




А при чем тут вид страницы?
pps88 то что ты написал в htaccess касается только вебсервера
Тоесть если он не найдет запрошенную страницу то покажет указанную 404
А то что ты в коде решаешь 404 показать он вооще не вкурсе
Показывай и страницу из кода
Для проверочки удали index.php и увидь свою 404
 
 Top
pps88
Отправлено: 24 Мая, 2015 - 09:59:33
Post Id



Новичок


Покинул форум
Сообщений всего: 63
Дата рег-ции: Май 2015  


Помог: 0 раз(а)




LIME - спасибо, удалил index.php и сервер показал указанную 404.
Получается мой вариант это проверять существование страницы и через php отдавать содержание 400, а с помощью header("HTTP/1.0 404 Not Found") отдавать ответ сервера 404 Not Found. Если я не прав поправьте меня.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB