Ru-Board.club
← Вернуться в раздел «Web-программирование»

» mod_rewrite: документация, готовые решения, вопросы

Автор: dacuan
Дата сообщения: 12.05.2016 15:28
Sutar

Попробуй так:


Код: RewriteRule ^(page[123])(/([0-9]*))?$ page.php?page=$1&id=$3 [NS,L]
Автор: Sutar
Дата сообщения: 13.05.2016 19:01
dacuan
работает так-же. Ничего не изменилось.
Пробовал ещё следующие комбинации, но тоже не помогает.


Код: ^(top|vip|boost|color)[/]?([0-9]*)$
^(top|vip|boost|color)[/]{0,1}?([0-9]*)$
Автор: dacuan
Дата сообщения: 13.05.2016 20:01
Sutar

Нужен детальный лог, включи RewriteLogLevel 9, открой только URL ../text-info////////////////398 и выложи куда-нибудь. Не надо открывать много урлов, только один, лог и без того будет большим.
Автор: Mavrikii
Дата сообщения: 13.05.2016 20:24
Sutar

Цитата:
можно открыть URL: ../text-info////////////////398

уверены, что срабатывает именно это правило? в нем ясно указано, что не больше одного слэша.
либо у все стоит что то отдельно, что преобразует слэши, либо не это правило реагирует.
Автор: Sutar
Дата сообщения: 13.05.2016 20:47
Mavrikii
Попробуйте даже в ВК такое проделать.
Например ../vk.com///////////id1234 - Запрос обрабатывается тоже корректно. Или это изза моего брандмауэра. (Opera 37.0)

Добавлено:
Хотя в EI6 - тоже так можно проделать. Практически на каждом сайте, где используется Rewrite
Автор: Mavrikii
Дата сообщения: 13.05.2016 20:59
Sutar

Цитата:
Или это изза моего брандмауэра.

браузер и брэндмауэр (файерволл) - разные вещи.

сейчас протестирую

ps: дела были.. апач 2.4

добавил в .conf
RewriteEngine On
RewriteRule ^/?(page[1-3])(/[0-9]*)?$ /test.php?page=$1&id=$2 [NS,L]

тестирую
http://127.0.0.1/page2 - OK
http://127.0.0.1/page2/12 - OK
http://127.0.0.1/page2//12 - The requested URL /page2//12 was not found on this server.


так что проблема не в реализации mod_rewrite, а в настройке сервера (а если везде, то может у вас прокся сидит и меняет запрос)
или перехватывает иное правило в другом месте - включаем логгирование и смотрим как обрабатывается запрос.
Автор: Sutar
Дата сообщения: 14.05.2016 12:05
Mavrikii
а такой запрос тоже не работает с // или больше слешами?


Код: page/([0-9]+)
Автор: Mavrikii
Дата сообщения: 14.05.2016 15:52
Sutar
Да
Только если Апач или что то перед ним выставляют запрос, удаляя лишнее.
Может весь ваш инет идет через прокси у провайдера.
Автор: JekaRus
Дата сообщения: 23.05.2016 03:20
Возможно ли заблокировать доступ к сайту с определенных браузеров?
Пробовал запретить вход с Firefox таким конфигом
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Mozilla* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Firefox* [NC]
RewriteRule ^login.php$ /111.html

Но почему-то редирект происходит со всех браузеров, например Opera и Chrom на 111.html
а не только с "Firefox 45.0 (Gecko 45.0)"
Автор: Mavrikii
Дата сообщения: 23.05.2016 04:52
JekaRus
вы посмотрели как выглядит User-Agent интересуемого вас браузера? подсказываю
http://whatsmyuseragent.com/ и сюда загляните - http://www.useragentstring.com/pages/useragentstring.php
ваши правила работают с любым агентом, который начинается с mozilla или firefox
Автор: JekaRus
Дата сообщения: 23.05.2016 10:07
Mavrikii
Спасибо за ссылки. А почему это и Хром и Опера определяется как Mozilla/5.0 ?
Как тогда задать чтобы только с хрома и оперы заходили?
Автор: Mavrikii
Дата сообщения: 23.05.2016 10:27
JekaRus

Цитата:
А почему это и Хром и Опера определяется как Mozilla/5.0 ?

https://ru.wikipedia.org/wiki/User_Agent
читать раздел Искусственная несовместимость


Цитата:
Как тогда задать чтобы только с хрома и оперы заходили?

определять на странице и перекидывать оттуда. использовать browsercap, к примеру, или иной js скрипт.
http://browscap.org/

можно и с помощью mod_rewrite, нужно лишь регулярку правильно написать - у firefox есть слово, только не в начале
так что убрать ^

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Firefox [NC]
RewriteRule ^login.php$ /111.html
но это легко подделывается

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: PHP: Регулярные выражения (RegExp, Regular, eregi, preg)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.