![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Сделал движок, но без ЧПУ, все из за того что движок модульный а .htaccess один.
То есть у каждого модуля может быть свой ЧПУ а может и не быть. Я искал в нете но не нашел, как в .htaccess дописать новый ЧПУ ? или убрать, вариант просто навсего переписывать файл .htaccess. Но тут проблема, вдруг обладатель движка захочет внести изменения, тогда при установки модуля все перепишется на новый. Вообшем нужно сделать как то так, типа include() ![]() |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
neoks, движек обычно ставится в каталог сайта. Один движек на один каталог. В этом-же каталоге находится и .htaccess.
Так что на движек приходится ровно один htaccess. Я что-то не так понимаю? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: нет Всего: 28 |
А как модули то вызываются? Что мешает перед вызовом модуля парсить url и передавать необходимые параметры в модуль?
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
Absinthe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
http://en.wikipedia.org/wiki/Front_Controller_pattern
Решает проблему. А костыли для подпирания костылей до добра не доведут. Переделывать скорее всего придется, но чем раньше - тем меньше проблем. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
О это уже интересно, вот тока не врубаюсь как это будет работать. Модуль получает $_GET[] То есть с home/45/news/189 нуно получить $_GET['home'] и $_GET['news'] Это сообщение отредактировал(а) neoks - 8.11.2011, 12:34 |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
Работай через единую точку входа, а там уже парси урл по любым правилам
|
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Гы, я только слышу единую точку входа, а что эта такое и как с ним работать
![]() |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
||||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
.htaccess
-------------------- Amazing ![]() |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Мда, туговато мне с .htaccess, не чего так и не понял про единую точку входа, теперь новая проблема, не находит не CSS не JS ) как это исправить ?
Добавлено через 2 минуты и 34 секунды Вот так загружается модуль, index.php?action=modul&do=short_story&id=2 Как написать чтоб был так в единую точку входа ? modul/short_story/2 |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
"В современных web-приложениях принято использовать концепцию единой точки входа. Эта концепция сводится к тому, что все запросы к серверу приложения переадресовываются на один файл, который, исходя из параметров запроса, координирует дальнейшее поведение скрипта." А в этом файл уже парсишь запрос. Если запрос такого вида "modul/short_story/2" можно через explode |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
То есть например в index.php если да то так у меня и работает, но трабла в том что .htaccess один, вдруг я новый модуль загружу и вот как теперь объяснить .htaccessУ что появился новый модуль с новым ЧПУ ![]() Вариант переписывать .htaccess но как я говорил этот вариант не подходит ![]() Вариант парсить урл, ну не знаю, нуно подумать, а вообще это будет правильно ?, пока обдумываю. |
|||
|
||||
$дмитрий |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 19.6.2004 Репутация: 17 Всего: 45 |
.htaccess оставь в покое, всю работу мы переложили на index.php
А в index.php уже сам обрабатываешь запросы по любым правилам Если для всех модулей одного правила будет достаточно action=МОДУЛЬ&do=ДЕЙСТВИЕ&id=ИДЕНТИФИКАТОР, то проблем вообще никаких Если какие-то модули должны работать по другим правилам, тогда для этого модуля создаешь отдельное правило, и в цикле проверяешь совпадение
По такому принципу работают современные фреймворки |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну лан, буду парсить URL, только не совсем понятен принцип, если мона то плиз примерчик
![]() |
|||
|
||||
Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: нет Всего: 28 |
.htaccess
Все что не является папкой или файлом используем в качестве одного параметра для index.php. Ну собственно перенаправляем все на последнего и получаем как было ранее сказано: Например если передать взять url типа www.yoursite.ru/home/45/news/189 то в файле index.php у нас будет массив $_GET содержать одно значение вида /home/45/news/189 Далее передаем его в модуль и там парсим как нам угодно или сначала парсим, а потом передаем в модуль, ну собственно и все. Это сообщение отредактировал(а) Vas - 8.11.2011, 18:18 -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |