Не работает элементарный mod_rewrite на виртуальном хостинге

M2
На сайте с 11.01.2011
Offline
342
1393

На шареде магазин на битриксе и куча 404 урлов, которые нужно 301 редиректом направить на нужный адрес.

к примеру:

было: apple?product=88

должно стать: /catalog/apple/iphone4.html

делаю:


RewriteCond %{QUERY_STRING} product=88
RewriteCond %{REQUEST_URI} apple
RewriteRule ^(.*) /catalog/apple/iphone4.html? [R=301]

не работает

сколько вариантов перепробовал - не описать! в итоге не выдержал, у себя создал файлик с phpinfo(), и пишу в htaccess:


RewriteCond %{QUERY_STRING} page=7
RewriteCond %{REQUEST_URI} test.php
RewriteRule ^(.*) http://google.ru

работает!

но mod_rewrite на виртуалке включён, всё функционирует...

из 2 примеров очевидно, что что-то не так на виртуальном хостинге, ибо 2 одинаковых примера на одном хосте работают, на другом - нет.

Что может быть не так?

PS добавлю на виртуальном хостинге версия апача 2.2.26

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
rustelekom
На сайте с 20.04.2005
Offline
522
#1

А может быть там еще стоит nginx? Если он используется, то необходимо вносить модификации для виртуальных серверов...

SSD VPS, SSD хостинг и выделенные серверы в Германии или РФ, FTP хранилища, регистрация доменов и SSL сертификаты ( https://www.robovps.biz/ ) Контакты: Telegram ( https://t.me/rustelekom_bot )
M2
На сайте с 11.01.2011
Offline
342
#2

rustelekom, да, вроде бы присутствует... а куда тогда вносить изменения? И почему работает конструкция Redirect 301 /oldpage.html http://site.ru/newpage.html ?

rustelekom
На сайте с 20.04.2005
Offline
522
#3

Обычно нджинс стои для проксирования запросов. Это задается в его конфиге, директивами location. Скорее всего нджинс перехватывает запросы которые вы шлёте и они не доходят до модрерайта.

M2
На сайте с 11.01.2011
Offline
342
#4

Ниче не понимаю...

Делаю так:


RewriteCond %{QUERY_STRING} ^product_id=1800$
RewriteRule ^(.*)$ http://google.ru

Ввожу:

мне в ответ:


302 Found
Found

The document has moved here.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

Это как? может битрикс перехватывать управление мод реврайтом где-то?

---------- Добавлено 11.02.2016 в 13:42 ----------

nginx нет всё-таки, т.к. апач на стандартном порту

rustelekom
На сайте с 20.04.2005
Offline
522
#5

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

M2
На сайте с 11.01.2011
Offline
342
#6

Всё, короче, решил проблему )))) как всегда всё банально - в конструкции отсутствовал модификатор [L], поэтому реврайт шёл дальше )))

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий