- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Приветствую всех!
Часто пишу правила RewriteCond/RewriteRule для преобразования кривых урлов,
помогал не раз здесь новичкам в этом, но вот теперь сам споткнулся почти на ровном месте.
Урл содержит знак `$' (доллар).
Пытаюсь с помощью правила преобразования урлов в .htaccess убрать этот доллар.
Но не получается даже просто поймать такой урл для обработки,
т.е. не получается написать даже строку RewriteCond.
Помогите!
А обычным слешом он не экранируется?
А обычным слешом он не экранируется?
Всё подобное перепробовал - ничего не получается.
Я даже не могу написать правило для отлова таких урлов по иному любому признаку,
например он начинается с `/qwerty', пишу
RewriteCond %{REQUEST_URI} ^/qwerty
Но это отлавливает все урлы, начинающиеся на qwerty, кроме содержащих доллар,
а долларовые ничто не берёт.
Как с ними работать?
Странно, мануал упорно продолжает говорить про возможность его экранирования: As of Apache 1.3.20, special characters in TestString and Substitution strings can be escaped (that is, treated as normal characters without their usual special meaning) by prefixing them with a backslash ('\') character. In other words, you can include an actual dollar-sign character in a Substitution string by using '\$'; this keeps mod_rewrite from trying to treat it as a backreference.
А что говорит лог mod_rewrite при этом?
Попробуй предшевствовать доллар с помощью \ , тоесть
RewriteCond %{REQUEST_URI} ^\$dollar
Попробуй предшевствовать доллар с помощью \ , тоесть
RewriteCond %{REQUEST_URI} ^\$dollar
Я пытаюсь даже просто отловить для обработки все обращения на сайт, начинающиеся со строки `qwerty'.
RewriteCond %{REQUEST_URI} ^/qwerty
..........
Никаких долларов не указываю, зачем? И не экранирую, соответственно.
Это правило прекрасно ловит урлы, начинающиеся с соответствующей подстроки,
но если же в строке запроса был символ доллара (где-нибудь уже после qwerty) - то не ловит!
Как такие урлы отлавливать и обрабатывать?
RewriteLog /var/log/rewrite.log
RewriteLogLevel 5
RewriteLogLevel от 0 до 9, 9 - максимально подробный. Наверняка покажет, что там происходит в деталях.
RewriteLog /var/log/rewrite.log
RewriteLogLevel 5
RewriteLogLevel от 0 до 9, 9 - максимально подробный. Наверняка покажет, что там происходит в деталях.
Он покажет, если урл удовлетворяет условию RewriteCond,
а в моём случае сервер считает, что при наличии в урле доллара
такой урл ни под одно из условий не подпадает,
хотя это ерунда какая-то: я по началу урла его отлавливать пытаюсь.
Скажите, кто-нибудь обрабатывал GET-запросы, содержащие этот символ?
Как вы это делали?
у меня нормально работает как не крути
конструкции вида
RewriteCond %{REQUEST_URI} ^/qwerty
RewriteRule ^.*\$a$ /login.html [L]
норм работают при обращении к qwerty$a
Извините конечно, что я со своим старческим маразмом лезу и какими-то странными "стандартами", но разве символ $ в валидном URL не кодируется как %24 ?
sokol_jack, вот, кстати, знак процента в мод реврайт у меня никогда срабатывал) как у тс доллар)