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
Форумы портала PHP.SU :: Версия для печати :: Универсальная настройка mod_rewrite
Форумы портала PHP.SU » Серверное администрирование » Apache и другие веб-серверы » Универсальная настройка mod_rewrite

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

1. SkaN - 27 Марта, 2012 - 12:03:43 - перейти к сообщению
Чтобы меня не отправляли в гугл, сразу скажу, что там я уже был.
Идея у меня такова: .htaccess отправляет на определенный скрипт с get параметром, в котором будет весь URL, кроме хоста. Дальше этот скрипт обрабатывает адрес, выделяет из него нужные переменные и передает управление основной части.
Но есть и сложность. Если взять, к примеру, вордпресс, то у него все страницы имеют вид ?id=num . Особых проблем нет. Но у меня все построено так: index.php выковыривает get-переменную id и на ее основании инклудит тот или иной файл. А файл уже использует остальные переменные. Например: ?id=block&block=2 означает, что будет проинклужен block.php и этот скрипт уже будет использовать переменную block. А может просто быть ?id=news и никаких дополнительных переменных.
Вот теперь, собственно, обобщение моей навязчивой идеи: как можно сделать такой скрипт (желательно даже целый модуль), который будет использовать установленный пользователем шаблон, на его основании парсить текущий URL и возвращать get-переменные, которые потом будут использоваться остальным сайтом?
2. DelphinPRO - 27 Марта, 2012 - 12:06:38 - перейти к сообщению
3. SkaN - 27 Марта, 2012 - 12:17:10 - перейти к сообщению
Так это же парсинг из обычной URL-строки в переменные, он не подойдет к ЧПУ
4. DelphinPRO - 27 Марта, 2012 - 12:21:56 - перейти к сообщению
.htaccess такого плана
CODE (text):
скопировать код в буфер обмена
  1. RewriteBase /
  2. RewriteRule ^.htaccess$ - [F]
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteRule ^(.*)$ index.php

т.е. все запросы на точку входа. и скриптом парсим URL

urls такого плана
site.ru/block
site.ru/block/6
site.ru/category/product
site.ru/category/product/5
site.ru/category/product/?sort=byname

в скрипте эксплодим по слешу и разбираем. также смотрим на возможные get параметры
5. caballero - 27 Марта, 2012 - 12:24:31 - перейти к сообщению
Цитата:
Так это же парсинг из обычной URL-строки в переменные, он не подойдет к ЧПУ

какая разница что там
парсинг - понятие растяжимое
просто по разному парсится а если в чпу парсить нечего тогда
swithc()
case
case

rewrite просто перенаправит все страницы на index.php зачем чтобы там обязательно был какойто парсинг
6. SkaN - 27 Марта, 2012 - 14:01:18 - перейти к сообщению
DelphinPRO: действительно, что-то я тупанул. Ведь просто достаточно...

 

Powered by ExBB FM 1.0 RC1