''=>function(){echo'Default callback';}// Страница по умолчанию (она же главная). Это правило выполнится в случае, если не подошло ни одно другое правило, так что должно быть всегда самым последним
А что будет, если к примеру использовать $2 вместо $1 ? Эти цифры как то отличаются или есть только такое понятие как $1 ? т.к в регэксп $ означает конец строки, поэтому не очень понятно что означает единичка... Почему - описал чуть выше...
^(.*) значит "всё", это регулярное выражение.
$1 — это ссылка на эту маску, т.е. в $1 попадёт то, что подходит под выражение (.*), т.е., как я сказал выше, всё.
!-f и !-d значит, что выражение должно выпоняться только для того пути, который не является путем к файлу (!-file) или директории (!-dir). Восклицательный знак — это, как обычно, отрицание, нужно для того, чтобы пути к изображениям или файлам проходили напрямую, не через PHP. (Добавление)
teddy пишет:
И я так понимаю это не универсальный вариант. Как можно грамотно настроить ЧПУ? Что бы на основе title статьи например, формировался ЧПУ. Если можно напишите код чтоб я вбил его у себя и прощупал на примере как это работает.
Это универсальный вариант для систем с единой точкой входа.
Это правильный вариант, а ЧПУ вы должны делать уже через PHP.
Вам нужно смотреть на роутинг запросов.
Т.к. через mod_rewrite все запросы перенаправляются на index.php, то, например, при запросе http://site.ru/news/12 в $_GET['q'] будет /news/12.
Соответственно, в самом PHP вы должны при помощи регулярных выражений выполнить роутинг этого адреса.
Например, чтобы получить из адреса /news/12 ID новости (12) вам понадобится регулярное выражение типа news/([0-9]+).
Насчет редеректов не понял, что вы имели в виду, но ЧПУ должно делаться через PHP для большей гибкости, так что эта проблема сама решится, когда разберетесь с роутингом.
При авторизации генерируется хэш, добавляется запись в sessions и устанавливается cookie с этим хэшем пользователю.
При заходе пользователя скрипт сравнивает его хэш и IP адрес с данными в таблице. Если совпадение есть — пользователь идентифицирован и мы можем из таблицы пользователей загрузить его по его ID.
Для начала следует определится с терминологией. Что такое "модуль" в вашей системе. Потому что я, например, модулем в первую очередь считаю небольшой функциональный блок на странице. (форма входа, меню, голосование)
Я думаю, что приведенные автором темы названия "модулей" как бы намекают.
В БД в таблице sessions хранится идентификатор сессии пользователя, в cookie ему ставите идентификатор. При заходе пользователя берете сессию из БД по идентификатору в cookie и тем самым идентифицируете пользователя.
По другому никак.