Поиск:

Ответ в темуСоздание новой темы Создание опроса
> .htaccess преобразование точно по формуле, изменение адреса 
V
    Опции темы
numerovan
Дата 28.1.2015, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 549
Регистрация: 1.12.2007

Репутация: нет
Всего: 2



Здравствуйте. Подскажите пожалуйста как будет выглядить RewriteRule для адреса примерного шаблона
ritmoformulnyy-mnimotakt-gla.zami-sovremennikov_1

условия следующие:
1. адрес делится на две части - строка_число
2. в первой части могут присутствовать точки, нижние подчеркивания,тире, лат. символы, цифры
4. в конце только число, от 1 и до максимального какого-то 
5. перед числом что в конце обязательно нижнее подчеркивание
6. в адресе могу добавлятся get-переменные

на данный момент вот это правило работает нормально
Код

RewriteRule ^([a-z0-9-_]+)$ /page.php?str_id=$1 [QSA]

но если будет присудствовать точка в строке, то не работает ... ни как не могу натыкать правильно. Отброшу наверно мои догадки и сразу лучше было бы увидить ваши варианты. Спасибо за ранее.
PM MAIL   Вверх
numerovan
Дата 29.1.2015, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 549
Регистрация: 1.12.2007

Репутация: нет
Всего: 2



вроде решил

Код

RewriteRule ^(.+_[0-9]+)$ /page.php?str_id=$1 [QSA]


поясню на всякий случай
^ - начало запроса, ^ и $ это словно обычные ковычки в рус. языке для выражения, н-р: "шла саша по шоссе..." и мы понимаем что это из какого-то отрывка, так и тут ^шла саша по шоссе...$, только представлено с наворотами.
$ - конец запроса
() - выражение, в нем правила для $1, $1 значение односящаяся к первой скобке, если было бы так ^(какие-то правила)/(какие-то правила)$ /page.php?str_id=$1&str=$2, $1 полетела бы в первую скобку, а $2 во вторую
.+ - один и более любого символов, включая так же _(нижнее подчеркивание), точки тоже могу быть и т.д.
_ - разделитель мой, в данном случае захотел чтоб был именно такой - дело вкуса
[0-9]+ - один и более символов что находятся в квадратных скобках. Один и более это указывает +(плюс) с права, можно было бы и написать так [0-9] это значит что от нуля до девяти могут находится в конце строки. Потом я подумал зачем мне ноль, когда в базе данных начинается с единицы, сразу скажу что ошибся, конечно логично что ноль может находится допустим и тут 1100322, так что нужно вот так как написал выше [0-9]+. Почему не [0-9]* ? потому что я 100% уверен что в моей строке в конце будет по любому какое-то число.
[QSA] - добавляет get-переменные к странице если они будут, и если они будут, то они будут срабатывать. К примеру на текущую страницу (/page.php?str_id=) у меня может приходить get-переменная об изменении валюты "cy=eur" и вот что на данной странице чел мог поменять валюту нужен этот [QSA], без этого get-переменая будет да приходить, но не будет работать. Еще пример  как пагинатор на странице, н-р - page=1 и т.д.

PM MAIL   Вверх
numerovan
Дата 10.4.2015, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 549
Регистрация: 1.12.2007

Репутация: нет
Всего: 2



Код

RewriteRule ^([a-z0-9]+[-\.\+_]*_[0-9]+)$ /page.php?str_id=$1

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0529 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.