[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: И опять регулярка......
Страницы: 1, 2
N0ob
Всем привет. Давно не имел дело с регулярками, но вот пришлось. В нете смотрел, но что то не так понял. Мне нужно составить регулярку для url.
Допустим:
1) http://site.ru/messages/
2) http://site.ru/messages?pm=2

Мне нужно, что бы на страницу передало вот такие данные:
1) module=messages
2) module=messages&&parametrs=array("pm"=>2)

Вот мои наработки:
AddDefaultCharset utf-8
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/template/img/favicon.png
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9.]+)$ /index.php?module=$1 [L,QSA]
RewriteRule ^([a-z0-9.]+)/([a-z0-9=&&.]+)$ /index.php?module=$1&&parametrs=$2 [L,QSA]

Если запускать без параметров, то все гуд, а если с ними, то переадресовывает на страницу без них
N0ob
Ребяяяяяяяят, помощь нужна! Очень срочно
Arh
Я не понял, какая цель преследуется в итоге?

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
N0ob
Смотри. Допустим я загружаю страницу без GET параметров:
Цитата
http://site.ru/messages

Тогда на страницу мне передается get переменная module=messages. Далее я подгружаю нужную страницу и т.д.
Ну а если я гружу страницу с GET параметрами:
Цитата
http://site.ru/messages?pm=2

То тогда на страницу должен передаться вот такой массив:
Цитата
module=messages&&parametrs=array("pm"=>2)

То есть в parametrs должны передаться все GET переменные из УРЛА. Не именно pm. Там могут быть любые и не одна.
N0ob
Ребят, вам понятно? Если нет, то как нибудь по другому расстолкуем
N0ob
Ребят, ну помогите, срочно надо. Для тех, кто знает регулярку, вроде пустяк
inpost
N0ob
parametrs=array("pm"=>2)

Так работает через GET ? echo $_GET['parametrs']['pm'] выводит 2 ?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
inpost
Второе:
module=$1&&parametrs=$2
Почему && ? Обычно между параметрами ставят &.

Третье:
2) http://site.ru/messages?pm=2
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

В итоге в $route у тебя со слешами всё будет, а доп.параметры отдельно ($_GET['pm'])

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
SDV
Для чего это тебе?
Как ты это собираешься использовать?
N0ob
Цитата
N0ob
parametrs=array("pm"=>2)

Так работает через GET ? echo $_GET['parametrs']['pm'] выводит 2 ?

Нет,так не работает, мне так и не надо. У меня ведь не просто сайт, у меня сайт с ЧПУ. То есть в $module должно передаваться название загружаемой страницы, а в $parametrs все ГЕТ параметры, которые я передал, в виде массива
Цитата
Второе:
module=$1&&parametrs=$2
Почему && ? Обычно между параметрами ставят &.

Запыхался, написал поТретье:
Цитата
2) http://site.ru/messages?pm=2
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

В итоге в $route у тебя со слешами всё будет, а доп.параметры отдельно ($_GET['pm']) запарке  :)

Затестим :) Спасибо!

Цитата
Для чего это тебе?
Как ты это собираешься использовать?


Допустим вот так:
Page::load($_GET['module'], $_GET['parametrs']);
N0ob
inpost спасибо, работает!
N0ob
inpost возникла небольшая проблема. Когда я захожу на страницу:
http://site.ru/messages/

То мой урл преобразовывается в:
http://site.ru/messages/messages/

То есть дублируеться. Если зайти на страницу без слеша на конце, то все норм. Эта проблема в .htaccess или у меня в файлах?

.htaccess
AddDefaultCharset utf-8
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/template/img/favicon.png
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?module=$1 [L,QSA]
inpost
N0ob
Ты в файле делаешь редирект или вручную добавляешь. .htaccess тут ни при чём.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
N0ob
inpost в тот то и дело, что я не нашел ни одного редиректа wink.gif
N0ob
Перерыл все, что можно. Кроме редиректа на 404.html ничего не нашел
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.