Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Apache mod_rewrite, Универсальное ЧПУ 
V
    Опции темы
Sunvas
Дата 11.4.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Запросы на сервер поступают в виде mysite.ru/a_a/b_b/c_c/.../z_z/index.html, где a_a, b_b и т.д. - это параметр и его значение.
Какое правило нужно прописать, чтобы преобразовать это все в mysite.ru/index.php?a=a&b=b&c=c&...z=z??? smile 
Основная трудность заключается в том, что заранее неизвестно количество таких параметров.  smile 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
mishaSL
Дата 12.4.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Sunvas, считаю что самым оптимальным вариантом будет с помощью mod_rewrite перенаправлять все запросы на обработчик (к примеру на файл index.php), а в обработчике уже парсить эту строку и присваивать необходимые переменные.


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
z-END
Дата 12.4.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 2
Всего: 102



я так пользуюсь:
Код

RewriteEngine on
Options +FollowSymlinks
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L,QSA]


Добавлено через 37 секунд
а далее как сказал mishaSL - все в index.php разбираю


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Sunvas
Дата 12.4.2007, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Ну хорошо. А как потом убедить скрипт сайта, чтобы они читал все параметры именно из переразжеванного запроса?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
z-END
Дата 12.4.2007, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 2
Всего: 102



простите что? smile
$_SERVER['QUERY_STRING'] - содержит в себе сторку запроса (/a_a/b_b/c_c/.../z_z/index.html)
после чего делай с ней чего хочешь.
разбивай на массив раздилителем "/" тогда будет нечто типа этого:
[0] => a_a
[1]=>b_b
[2]=>c_c
[3]=>z_z
[x]=>index.htm



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Sunvas
Дата 12.4.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



z-END, Да, я не так выразился.  smile 
Уточню:
При помощи постов 2 и 3 ПХП скриптом уже все обработал все как надо. И теперь при запросе mysite.ru/a_a/b_b/c_c/.../z_z/index.html в переменную $newurl записывается mysite.ru/index.php?a=a&b=b&c=c&...z=z.   smile 

Но возникла проблема, что скрипт-то все-равно думает, что он запущен от команды ЧПУ. А как теперь заставить его работать от расшифрованного ЧПУ? Переписывать весь скрипт нет возможности, т.к. он довольно большой, и в нем используется всякие $_GET[], $_POST[] и т.д.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
mishaSL
Дата 13.4.2007, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Sunvas, $_POST и так должен работать.
Проблема не совсем ясна. Насколько я понял вы пишете в переменную $newurl это все при разборе, пишите сразу в массив $_GET[] и все должно работать, к примеру так если это PHP:
Код

<?php
$arr = explode('/', $_SERVER['QUERY_STRING']);
foreach($arr as $v) {
    list($name,$value) = explode('_',$v);
    if ($name != '' && $value != '') {
        $_GET[$name] = $value;
    }
}
var_dump($_GET);
?>




--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Sunvas
Дата 13.4.2007, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Всем спасибо!
Цитата(mishaSL @  13.4.2007,  12:01 Найти цитируемый пост)
var_dump($_GET);

Это оказалось лишним.  smile 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
mishaSL
Дата 13.4.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 2
Всего: 54



Цитата(Sunvas @  13.4.2007,  15:33 Найти цитируемый пост)
Это оказалось лишним.

Это для наглядности smile 

P.S. пометь плиз тему решенной


--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0784 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.