@FulgerX2007

Как сделать перенаправление 301 на адрес со слешем в конце для ocStore?

ocStore - как сделать перенаправление 301 на адрес со слешем в конце?

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

Мой .htaccess :
Options +FollowSymlinks

Options -Indexes

<FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
 Order deny,allow
 Deny from all
</FilesMatch>

RewriteEngine On

# Перенаправление с htttp на https
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) https://shop.esport.md/$1/ [R=301,L]


Использую Seo Pro который встроен в ocStore.
Вот его настроики:
83625e7e29d84d82b111948324b45f06.png
  • Вопрос задан
  • 2733 просмотра
Решения вопроса 2
С включённым SeoPro, там где окончание ЧПУ, ставите слеш. Дальше идёте в файл на хостинге
catalog/controller/common/seo_pro.php
Ищите 328 строку
$this->response->redirect($seo);
и меняете на
$this->response->redirect($seo,301);
Чистите кеши, обновляете модификаторы

Ну и на всякий проверьте ответ сервера. Работает такой вариант точно на ocStore 2.1.0.2.1
Ответ написан
shambler81
@shambler81 Куратор тега htaccess
############################################################################
#### Убираем повторяющиеся слеши (/) в URL                              ####
############################################################################
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]
############################################################################
#### Убираем слеши в конце URL для статических файлов (содержит точку)  ####
############################################################################
RewriteCond %{REQUEST_URI} \..+$
   # Если файл содержит точку.
RewriteCond %{REQUEST_FILENAME} !-d
   # И это не директория.
RewriteCond %{REQUEST_FILENAME} -f
   # Является файлом.
RewriteCond %{REQUEST_URI} ^(.+)/$
   # И в конце URL есть слеш.
RewriteRule ^(.+)/$ /$1 [R=301,L]
   # Исключить слеш.

############################################################################
#### Добавляем слеш(/), если его нет, и это не файл.                    ####
############################################################################
RewriteCond %{REQUEST_URI} !(.*)/$
   # Если слеша в конце нет.
RewriteCond %{REQUEST_FILENAME} !-f
   # Не является файлом.
RewriteCond %{REQUEST_URI} !\..+$
   # В URL нет точки (файл).
RewriteRule ^(.*)$ $1/ [L,R=301]
   # Добавляем слеш в конце.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kryamk
@kryamk
#добавляем слэш в конце
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы