Помогите написать правила для .htaccess

Главные вкладки

Аватар пользователя Vedmed Vedmed 13 июля 2010 в 22:10

Добрый вечер!

Помогите, плиз, написать правила для .htaccess. Не понятно как написать.
Нужно, чтобы путь такого вида

http://www.site.ru/content/articles/?id=6 преобразовался в http://www.site.ru/content/articles/6/
а
http://www.site.ru/taxonomy/term/6,5,1 преобразовался в http://www.site.ru/content/taxonomy/term/6/5/1, а лучше даже http://www.site.ru/content/articles/6/5/1.

Подскажите плиз, наверняка есть мастера, которым такое написать не трудно. Заранее спасибо.

Комментарии

Аватар пользователя Vedmed Vedmed 14 июля 2010 в 16:48

Хм...Думал об этом, но: а как заменить модулем pathauto http://www.site.ru/content/articles/?id1=6&id2=7 на подобное
http://www.site.ru/content/articles/6/7/ ?
Тупо создать синоним не подойдет, т.к. id1 и id2 могут быть разными. А в автоматических настройках синонимов создается либо для материала, или для таксономии. Подскажите, плиз!

Аватар пользователя Vedmed Vedmed 14 июля 2010 в 23:06

Ну почему же? Должно работать как-то так при записи в .htaccess:
RewriteCond %{REQUEST_URI} =/content/articles/
RewriteRule ([0-9])+/([0-9])+/? /?id=$1&id2=$2 [QSA,R]

Но пока не работает Sad Бьюсь над решением, если кто поможет вери сенкс!

Аватар пользователя Dan Dan 15 июля 2010 в 0:52

Заработает конечно, но это не друпал-way.

Ещё вспомнил про inbound/outbound - почти то же самое что и htaccess )

Аватар пользователя Vedmed Vedmed 15 июля 2010 в 9:54

Не хочу вступать в бессмысленный холивар друпал-way или нет, но в друпале стандартно идет:

 RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Так почему же не использовать такие же способы.

Аватар пользователя Vedmed Vedmed 15 июля 2010 в 11:05

Народ, помогите ктонть, никак не могу решить!
Задача такая
http://www.site.ru/content/articles/?id1=6&id2=7, нужно переделать в http://www.site.ru/page/6/7, пишу в .htaccess такое:
RewriteRule ^page/([0-9]+)/([0-9]+)/$ /?id1=$1&id2=$2[QSA] , пишу перед стандартными условиями в друпаловском файле .htaccess. Т.е. получается так:

RewriteRule ^page/([0-9]+)/([0-9]+)/$ /?id1=$1&id2=$2 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA],

но не работает!!! (((

Аватар пользователя Vedmed Vedmed 15 июля 2010 в 12:17

Вот еще что обнаружил:
путь: content/articles/ - создается вызовом hook_menu.
Соответственно QUERY_STRING получется
q=content/articles/&tid1=4&tid2=5,
получается что этот урл такой:
www.site.ru/index.php?q=content/articles/&id1=4&id2=5
,соответственно он попадает под стандартное друполовское правило
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
, учитывая это переписал на
RewriteRule ^page/([0-9]+)/([0-9]+)/$ index.php?q=content/articles/&id1=$1&id2=$2,
но опять не работает (((