Не могу найти нужной информации, решил задать вопрос на форуме программистов php. Имею сайт http://www.moisait.com. Есть несколько страниц главная, контакты и о нас. Но я не хочу создавать файлы и структуру типо http://www.moisait.com/ПАПКА/ПАПКА/ФАЙЛ. Нужно чтобы(если я правильно понимаю) всегда сначало запускался файл в корне сайта, наш index.php. Анализировал данные. И после чего выдавалась нужная страница пользователю. Как это реализовать и через что? Коротко: 1. Человек заходит на сайт http://www.moisait.com 2. Переходит на страницу через get на http://www.moisait.com/doc?server=что-то 3. Данные обрабатываются index.php в корне и выдается страница(страницы храняться в базе данных MyQsl) Если можно с простым примером, будто на сайте 2 страницы, главная и еще.
Что именно интересует? "как это работает" или "надо сделать"? Если надо сделать, то тут проще всего без познаний обратится к CMS, в смысле брать готовую CMS и использовать, например Wordpress.
VLK Да, как это работает, через что работает(примитив: создается это, функция 1, потом 2, 3, еще ... и готово), что гуглить. Я хочу научиться делать это. С регистрацией авторизацией,куками, запись и чтение из mysql, версткой вроде разобрался(по минимуму). Дошло до создания других страниц Приехал
VLT http://habrahabr.ru/post/13726/ вот по этой статье и читал еще дополнительно Как понимаю я должен проверить get запрос, разобрать его, обратиться к базе - есть ли такая страница и вывести ее. Но тут появляется вопрос. В корне файл index.php, он должен срабатывать 1, а я перехожу по ссылке http://www.moisait.com/text?id=4. Как запустить index.php 1, и как конечно выдать нужный урл, или он так и останется, я только выведу нужное на страницу из базы + Дошло Так как учусь и сайт должен быть простой, буду использовать такой способ. Создам в корне файлы с нужными разделами, а после запроса к ним (пример файл doc.php) .../doc?test=9_mai разбираю get запрос, отправляю в базу данных эти 9_mai и ищу, если нет вывожу ошибку.
Ну так если знаешь в чем проблема, создаешь файл index.php который будет являться единой точкой входа, создаешь в БД таблицу posts, с полями id, title, content, соответственно у тебя ссылки будут site.ru/index.php?post_id=$ где за место знака $ будет цифра, эту цифру в файле index.php ты вытаскиваешь, вот так вот: Код (Text): $id = $_GET['post_id']; потом проверяешь что бы этот $id был цифрой а ни чем то другим и вообще задано ли это значение потом формируешь запрос к БД, куда подставляешь этот $id Код (Text): $query = "SELECT * FROM posts WHERE id='".$id ."' "; выполняешь запрос, получаешь ответ, вытаскиваешь из него то, что тебя интересует. Вписываешь в переменные допустим $title и $content Потом создаешь еще один файл - view.php в переводе с иноземного view это вид, т.е. это файл с HTML кодом для вывода текста, примерно так: Код (Text): <!doctype html> <html> <head> <meta charset="utf-8" /> <title><?php echo $title; ?></title> </head> <body> <h3><?php echo $title; ?></h3> <div><?php echo $content; ?></div> </body> </html> и потом в самом конце в файле index.php подключаешь этот файл - view.php Вроде как все. Добавлено спустя 11 минут 45 секунд: PS используй единую точку входа, т.е. все запросы, короче все должно идти через один файл и файл этот как правило index.php
Возник вопрос. http://habrahabr.ru/post/140693/ написано что запрос может быть оправлен не 1 раз и предлогают такой кастыль Код (Text): RewriteEngine On #Don't favicon! RewriteCond %{REQUEST_FILENAME} !^favicon\.ico RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L,QSA] Встречаются и другие примеры создания, какой будет правильный?
правильным будет тот, который будет работать и решать поставленную задачу. разные фреймворки могут иметь разные подходы к разрешению запроса и как следствие разные набор правил рерайтера. в приведенном примере костыль решает на самом деле очевидно простую задачу: не запускает фреймворк для поиска фавикона. то есть если иконки в нужном месте не лежит - большинство горепрограммистов через рерайтер запустят пхп-машину. добавление кондишна заранее исключает из обработки иконку сайта. если её физически нет - веб-сервер сам разрешит запрос статусом 404 и нужным документом.
Не туда лезешь, сначала без mod_rewrite сделай, пойми все как пашет, потом почитай и сделай MVC, пойми как все работает и только потом лезь в mod_rewrite.