Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
5 / 6 / 4
Регистрация: 03.12.2009
Сообщений: 267

Mode_Rewrite неполная замена

11.05.2011, 15:08. Показов 1767. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Проблема следующего рода. Использую правило преобразования, выдёргиваю часть строки и хочу ей заменить всю строку, а заменяется только часть.Вот содержимое .htaccess
C
1
2
3
4
5
6
7
8
9
AddDefaultCharset utf-8
RewriteEngine on 
RewriteBase /
RewriteRule ^.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /trololo [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
Пример: ввожу url http://localhost/notices/all/
Ожидаемый результат в переменной route http://localhost/trololo
реальный результат: http://localhost/trololo/all/
p.s. планируется использовать для преобразования страниц со слешем на конце в страницы без него.
строка
C
1
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
работает без нареканий
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2011, 15:08
Ответы с готовыми решениями:

Регулярное выражение (Mode_rewrite)
Привет всем, подскажите пожалуйста. Регулярное выражение (Mode_rewrite) для преобразования строки типа "/gallery.php?p=koz"...

Неполная форма
//polnaia forma #include<iostream.h> #include<conio.h> #include<math.h> int main() { int x; int y; int z; int...

Неполная сортировка
Создаю запрос "SELECT ... ORDER BY tag". В результате сортируются в алфавитном порядке почти все записи, но несколько записей выпадают из...

4
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
11.05.2011, 15:35
В 5й и в 7й строках добавьте флаг L .
0
5 / 6 / 4
Регистрация: 03.12.2009
Сообщений: 267
11.05.2011, 15:57  [ТС]
Потрясающе. Большое спасибо. Если Вас не затруднит для полного понимания мной происходящего ответьте на два вопроса.
1) флаг [L] нужно ставить во всех директивах RewriteRule? Я перестал понимать его смысл, ведь я сознательно убрал его из всех директив кроме последней.
2) Результаты RewriteRule ^(.*)/$ /trololo [R=301,L] и RewriteRule ^(.*)/$ trololo [R=301,L]
дают одинаковый результат. Какой вариант будет правильнее? Заранее благодарю
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
11.05.2011, 16:55
Цитата Сообщение от Karpo Посмотреть сообщение
1) флаг [L] нужно ставить во всех директивах RewriteRule? Я перестал понимать его смысл, ведь я сознательно убрал его из всех директив кроме последней.
Начать надо с того, что же вообще происходит, когда апач начинает обрабатывать внешний запрос клиента через mod_rewrite. Внешний запрос (например, /foo/bar.lol) последовательно проходит через все правила согласно флагам и общему алгоритму. Когда он выполнит обработку входного урла, он получит некий другой урл. Затем для этого полученного урла будет выполнен внутренний подзапрос (если только Вы не сделали редирект) с повторным прохождением всех правил уже для нового урла. И так далее, пока не ... (тут я могу наврать, поэтому дальше рассказывать не буду). Если же сделали редирект, то понятно, что клиент после этого делает уже новый внешний запрос, но после выполнения флага [R] у апача есть все шансы сломать полученный урл нижележащими правилами, если не сделать L вместе в R. Поэтому, если уж Вы решили, что данное правило делает редирект R, то и продолжать дальнейшую обработку наверняка не следает. [R,L] всегда вместе (кроме случаев, когда Вы уверены в том, что делаете, и что делаете это правильно).

Цитата Сообщение от Karpo Посмотреть сообщение
2) Результаты RewriteRule ^(.*)/$ /trololo [R=301,L]
и RewriteRule ^(.*)/$ trololo [R=301,L]
Первое (/trololo) правильнее, ибо это урл относительно домена, а второе - вообще не пойми что за урл такой. То ли относительный от текущего пути, то ли еще что-то.
0
5 / 6 / 4
Регистрация: 03.12.2009
Сообщений: 267
12.05.2011, 02:43  [ТС]
Спасибо, что разъяснили всё в доступной форме.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2011, 02:43
Помогаю со студенческими работами здесь

Неполная производительность видеокарты
Здравствуйте. Я первый раз на вашем форуме и заранее извиняюсь, если эта тема уже где-то обговаривалась, но мне просто нужна помощь в...

Неполная активность видеокарты
Всем привет! Моя проблема заключается в неполном использовании моей видеокарты - radeon 6870.Я играю в WoT,и свернув быстро игру в Catalyst...

Неполная прокрутка в Word 2010
После набора текста прокрутка страницы останавливается, когда текстовый курсор достигает границы окна, т.е. Word не дает текущей позиции...

Полная и неполная инверсия списка
заранее извиняюсь,если такаят тема уже есть,но честно не нашел.Сделал прогу для неполной инверсии: inv(X,Y):-inve(X,,Y). inve(,Z,Z). ...

Неполная загрузка CPU и GPU
Добрый день ,в некоторых играх наблюдается неполная загрузка CPU и GPU ,при низком фпс (30-40 FPS) Помимо этого во всех играх часто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru