| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование Web серверов и Web служб > Кипит моск (( mod_rewrite |
| Автор: MsJulia 9.8.2012, 23:34 |
| 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_up=25&years_to=30 --------------------------------- по большому счёту оно мне и надо, но как оно работает понять не могу :( " абстрагироваться от путей и ссылок и рассматривать то, с чем работает RewriteRule, как обычную строку. Эта строка передается от RewriteRule к RewriteRule, видоизменяясь, если какое-то из RewriteRule сработало. В общем виде, если исключить сложности с использованием флагов (некоторые из которых мы рассмотрим ниже) и сложности с составлением регулярных выражений (которых мы почти не будем касаться в этой статье), RewriteRule работает ОЧЕНЬ просто. 1. Взяли строку. 2. Сравнили с регулярным выражением в первом аргументе. 3. Если есть совпадение — заменили всю строку на значение второго аргумента. 4. Передали строку следующему RewriteRule. Вот, в общем, и все." Если так, то второе правило сработать не должно было, ведь так? ====================================== "а сути не поняли" а как ещё можно понимать "Если есть совпадение — заменили всю строку на значение второго аргумента" суть флага L мне отчасти понятна, здесь же я хотел схимичить обработку URL - несколькими идущими подряд правилами RewriteRule Для этого хотелось понять, что именно передаётся в СЛЕДУЮЩЕЕ RewriteRule после обработки первым без прекращения интерации флагом [L] "Паутина" сказала, что преобразование идёт по цепочке, на деле есть то, что я описал... |
| Автор: MsJulia 10.8.2012, 00:26 |
| скажите кто-нибудь, что вернёт такой реврайт, при запросе http://мойлог.рф/один/четыре RewriteRule один два?три=3 [QSA,R] RewriteRule четыре ?пять=5 [QSA,R] И главное, почему он возвращает оба параметра, если везде пишут что URL изменяется от правила к правилу... |
| Автор: infinityC 1.10.2012, 22:47 |
| Так и не понял, как создать новую тему, поэтому вопрос сюда. Есть реальный урл http://site.ru/objects/doma/dom1, то есть страницы на сайте имеют такую трехуровневую адресацию. Как этот http://site.ru/objects/dom1 запрос преобразовать в вышеприведенный? Я делаю так, но неработает: RewriteRule ^objects/(.*)$ /objects/gallery/$1 [L] |