![]() |
|
![]() ![]() ![]() |
|
MsJulia |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.8.2012 Репутация: нет Всего: нет |
RewriteEngine On
RewriteBase / RewriteRule возраст/([0-9]+)-([0-9]+) love?years_up=$1&years_to=$2 [QSA,R] RewriteRule Парни ?who=1 [QSA,R,L] -------------------------------------------------------- отправляю туда: http://пример.рф/love/Девушк...раст/25-30/ по идее он первой строкой должен изменить url и вторая сработать не должна, но она срабатывает всёравно... на выходе http://пример.рф/?who=1&years_...amp;years_to=30 --------------------------------- по большому счёту оно мне и надо, но как оно работает понять не могу :( " абстрагироваться от путей и ссылок и рассматривать то, с чем работает RewriteRule, как обычную строку. Эта строка передается от RewriteRule к RewriteRule, видоизменяясь, если какое-то из RewriteRule сработало. В общем виде, если исключить сложности с использованием флагов (некоторые из которых мы рассмотрим ниже) и сложности с составлением регулярных выражений (которых мы почти не будем касаться в этой статье), RewriteRule работает ОЧЕНЬ просто. 1. Взяли строку. 2. Сравнили с регулярным выражением в первом аргументе. 3. Если есть совпадение — заменили всю строку на значение второго аргумента. 4. Передали строку следующему RewriteRule. Вот, в общем, и все." Если так, то второе правило сработать не должно было, ведь так? ====================================== "а сути не поняли" а как ещё можно понимать "Если есть совпадение — заменили всю строку на значение второго аргумента" суть флага L мне отчасти понятна, здесь же я хотел схимичить обработку URL - несколькими идущими подряд правилами RewriteRule Для этого хотелось понять, что именно передаётся в СЛЕДУЮЩЕЕ RewriteRule после обработки первым без прекращения интерации флагом [L] "Паутина" сказала, что преобразование идёт по цепочке, на деле есть то, что я описал... |
|||
|
||||
MsJulia |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.8.2012 Репутация: нет Всего: нет |
скажите кто-нибудь, что вернёт такой реврайт, при запросе http://мойлог.рф/один/четыре
RewriteRule один два?три=3 [QSA,R] RewriteRule четыре ?пять=5 [QSA,R] И главное, почему он возвращает оба параметра, если везде пишут что URL изменяется от правила к правилу... |
|||
|
||||
egetmanenko |
|
|||
Веб-разработчик Профиль Группа: Участник Сообщений: 30 Регистрация: 11.10.2010 Где: Снегири Репутация: 2 Всего: 2 |
Вернёт: http://мойлог.рф/два/четыр...&пять=5 Потому что mod_rewrite не прекращает перезаписывать ваш урл сразу после первого совпадения. И даже после 1 прохода всех правил, mod_rewrite запустит второй проход. И только в том случае, если ни одно из правил не срабатывает, то mod_rewrite прекратит своё действие. |
|||
|
||||
infinityC |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 1.12.2009 Репутация: нет Всего: нет |
Так и не понял, как создать новую тему, поэтому вопрос сюда.
Есть реальный урл http://site.ru/objects/doma/dom1, то есть страницы на сайте имеют такую трехуровневую адресацию. Как этот http://site.ru/objects/dom1 запрос преобразовать в вышеприведенный? Я делаю так, но неработает: RewriteRule ^objects/(.*)$ /objects/gallery/$1 [L] Это сообщение отредактировал(а) infinityC - 2.10.2012, 08:26 |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |