Проблема с .htaccess

Статус
В этой теме нельзя размещать новые ответы.

FL@SH

Читатель
Заблокирован
Регистрация
20 Июл 2008
Сообщения
193
Реакции
25
  • Автор темы
  • Заблокирован
  • #1
Всем привет. в общем возникла проблема при составлении регулярного выражения в .htaccess
есть 2 ссылки:
Для просмотра ссылки Войди или Зарегистрируйся
и
Для просмотра ссылки Войди или Зарегистрируйся
К первому применял вот такой способ
PHP:
RewriteRule ^god/(.*)(/?)+$ index.php?do=god&god=$1 [L]
При переходе по ссылке Для просмотра ссылки Войди или Зарегистрируйся
всё нормально.
Но к второй ссылке пытаюсь применить так
PHP:
RewriteRule ^god/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=god&god=$1&cstart=$2 [L]
При заходе по ссылке Для просмотра ссылки Войди или Зарегистрируйся переменные получаются следующие:
Array
(
[do] => god
[god] => 2009/page/3/
)
Вопрос, почему переменной god привсаевается вся строка? Тоесть я не могу разграничить перемнные god & cstart
По сути не получается составить регулярное выражение :-(
 
Всем привет. в общем возникла проблема при составлении регулярного выражения в .htaccess
есть 2 ссылки:
Для просмотра ссылки Войди или Зарегистрируйся
и
Для просмотра ссылки Войди или Зарегистрируйся
К первому применял вот такой способ
PHP:
RewriteRule ^god/(.*)(/?)+$ index.php?do=god&god=$1 [L]
При переходе по ссылке Для просмотра ссылки Войди или Зарегистрируйся
всё нормально.
Но к второй ссылке пытаюсь применить так
PHP:
RewriteRule ^god/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=god&god=$1&cstart=$2 [L]
При заходе по ссылке Для просмотра ссылки Войди или Зарегистрируйся переменные получаются следующие:
Array
(
[do] => god
[god] => 2009/page/3/
)
Вопрос, почему переменной god привсаевается вся строка? Тоесть я не могу разграничить перемнные god & cstart
По сути не получается составить регулярное выражение :-(

А ларчик просто открывается...у Вас все на себя забирает первая регулярка... варианта два на выбор:
1) или конкретизировать первое выражение (RewriteRule ^god/([^/]*)(/?)+$ index.php?do=god&god=$1 [L])
2) или поменять местами Ваши варианты... сначала поставить Ваше 2-ое, а потом 1-ое

Выбирайте, какой из вариантов Вам ближе и проще ;)
 
  • Автор темы
  • Заблокирован
  • #3
Спасибо.Поменял местами - помогло.
 
А что означает вот эта конструкция? Конкретно: зачем там скобки и +?

(/?)+
 
А что означает вот эта конструкция? Конкретно: зачем там скобки и +?

(/?)+

могу только предположить, что или просто опечатался человек, или подразумевалось, что в конце могут быть и несколько символов "/", а может и не быть вообще - в принципе в таком случае в конце можно просто поставить "/*".

2 andrnag
 
Я тоже подумал что лучше было бы *, или, в контексте url вообще ограничиться /? Но закралось сомнение, может быть здесь + в качестве квантификатора жадности? Или после ? это не применимо?

2 ZuArt
 
Друзья, подскажите пожалуйста что прописать в .htaccess чтобы решить такую задачку:
HTML:
есть ссылка (движок joomla):
http://site.com/index.php?option=com_banners&task=click&bid=29
стандартным джумловским преобразователем SEF ссылок получается новая ссылка:
http://site.com/component/banners/click/29.html
Вопрос: что прописать в .htaccess чтобы вместо слова banners подставлялось любое другое, например img?
 
Приведи полный .htaccess (я с джумлой не работал, не знаю какой там стандартный)

Общее решение такое: чтобы перед той строкой, в которой генерится конечный УРЛ сделать преобразование этого banners в img. Типа так:
RewriteRule (.*)banners(.*) $1img$2

Или, если есть строка, где есть именно формируется слово banners, заменить на img.

Короче нужен .htaccess.

upd: или как там вообще в джумле ЧПУ делается? Что за SEF?
 
Попробовал. почему то не изменяет. Ни на локалке, ни на сервере.
Я уже попробовал Artio JoomSEF и он может решить эту задачу, но парралельно выплывают другие проблемы, например, изменяются ссылки всех разделов (т.е. сформированных самой SEF джумлы), отключаю эту фишку и уже не используется стандартный SEF модуль + не работает поиск... я уже и незнаю что делать...
 
Offtopic: переходи на modx
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху