Перейти к содержимому


Фотография
- - - - -

301 редирект, удаление слеша через htaccess нарушает корзину


Лучший Ответ Lyasik , 12 September 2015 - 15:31

Было:

RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

 

Стало:

RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond %{REQUEST_URI} !^/component
RewriteRule ^(.*)(/)$ $1 [L,R=301]

 

Правило срабатывает везде, у страниц убирается слеш. Страница корзины не тронута и работает исправно.

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 2

#1 Lyasik

Lyasik

Отправлено 05 August 2015 - 15:42

Всем привет.

Я делаю редирект 301 через htaccess, убирая слеш в конце страниц:

 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

 

страницы вида /about/, /terms/ и прочие теперь стали /about, /terms

 

но это также повлияло на работу корзины.

было - стало:

 

/component/zoo/?controller=basket&task=index&app_id=2&Itemid=125&nocache=832558524

/component/zoo?controller=basket&task=index&app_id=2&Itemid=125&nocache=832558524

 

Такая замена критично влияет на работу корзины, клиент доходит до заказа, заполняет свои данные и при отправке получает 404.

 

Собственно подскажите, пожалуйста, как мне настроить htaccess, чтобы он убирал слеши в конце всех моих страниц, но не трогал корзину.

Спасибо.


Сообщение отредактировал Lyasik: 05 August 2015 - 15:43

  • 0

#2 SmetDenis

SmetDenis

Отправлено 06 August 2015 - 09:16

Редирект не пропускает GET/POST параметры.

Попробуйте указать дополнительный QSA флаг в редирект.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Lyasik

Lyasik

Отправлено 12 September 2015 - 15:31   Лучший Ответ

Было:

RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

 

Стало:

RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond %{REQUEST_URI} !^/component
RewriteRule ^(.*)(/)$ $1 [L,R=301]

 

Правило срабатывает везде, у страниц убирается слеш. Страница корзины не тронута и работает исправно.


  • 0




Click to return to top of page in style!