Jump to content
Sign in to follow this  
fulgerx2007

Редирект 301 страницы без слэша на страницу со слэша слэшем

Recommended Posts

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

Нужно чтобы все адреса без слеша в конце перенаправились 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

Share this post


Link to post
Share on other sites

#убираем слэш в конце
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

#добавляем слэш в конце
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Share this post


Link to post
Share on other sites

Доброго времени суток.

Могли бы вы помочь мне встроить этот редирект?

У меня opencart 2.0.1.1

 

Мой htaccess:

php_value display_errors off

Options +FollowSymlinks
Options -Indexes

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

RewriteEngine On

RewriteCond %{ENV:HTTPS} !on
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 ^download/(.*) /index.php?route=error/not_found [L]
RewriteRule ^blogs index.php?route=pavblog/blogs [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]
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/
RewriteRule ^index\.html$ / [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ / [R=301,L]
RewriteCond %{QUERY_STRING} ^route=common/home$
RewriteCond %{REQUEST_METHOD} !^POST$
RewriteRule ^index\.php$ https://%{HTTP_HOST}? [R=301,L]

<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 days"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType image/jpeg "access plus 4 weeks"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/gif "access plus 43829 minutes"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
ExpiresByType text/html "access plus 43200 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds" 
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text\.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image\.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</IfModule>

Хотелось бы настроить один общий вариант, т.е. либо везде со слешем, либо везде без слеша.

Предположу, что лучше везде без слеша.

 

И вот, казалось бы, чуть выше написано как сделать то, что я хочу, но я не понимаю как корректно вставить это в мой файл, что бы оно не отключало других функций.

 

Само оно работает, если добавлю вышеуказанный код, т.е.

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

После строки RewriteBase /, но не отключится ли тогда блок следующий блок?

# RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]

RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteRule ^blogs index.php?route=pavblog/blogs [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]
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

Или что-то ещё?

 

PS В админку теперь зайти можно только через /admin/index.php

Edited by newmaster
Добавил PS

Share this post


Link to post
Share on other sites

Как только для главной?

 

#добавляем слэш в конце
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Share this post


Link to post
Share on other sites

Может кому пригодится. Искал как сделать редирект на без-слеша, нигде не нашел. Ни одно решение с htaccess не работало.

Ocstore 2.3

У меня стоит SEO Pro и дело оказалось в нем.

Решил так:

в файле /catalog/controller/startup/seo_pro.php

в куске кода (строка 227):

if (isset($postfix)) {
$seo_url .= trim($this->config->get('config_seo_url_postfix'));
} else {
$seo_url .= '/';
}
 
заменил
$seo_url .= '/'; 
на
$seo_url .= '';

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By zemleroi
      И так 4-е небольших доработки для OpenCart 2.x которые добавляют  функционал редиректа при переходе по ссылке
      1. product_link_redirect.ocmod.xml - можно установить на любой товар, созданный в магазине, произвольную ссылку (как внешнию так и внутреннию). При попытке перехода по ссылке товара в магазине, если параметр не пустой, будет редирект на произвольную ссылку.
      2. catalog_link_redirect.ocmod.xml - можно установить на любую категорию, созданную в магазине, произвольную ссылку (как внешнию так и внутреннию). При попытке перехода по ссылке категории в  магазине, если параметр не пустой, будет редирект на произвольную ссылку.
      3. manufacturer_link_redirect.ocmod.xml - можно установить на любого производителя, созданного в магазине, произвольную ссылку (как внешнию так и внутреннию). При переходе по ссылке производителя в магазине, если параметр не пустой, будет редирект на произвольную ссылку.
      4. information_link_redirect.ocmod.xml - можно установить на любую статью, написанную в магазине, произвольную ссылку (как внешнию так и внутреннию). При переходе по ссылке производителя в магазине, если параметр не пустой, будет редирект на произвольную ссылку.
      Установка стандартная, через модификатор или скопировать файлы в папку system/. Можно использовать модификации как все вместе так и по отдельности, в зависимости от необходимости. Работает так же с SEO линками,так же  на разных языках можно указать свои ссылки
      Протестирована на OC 2.1,2.2,2.3
      Демо:
      OC 2.1 товар "iPhone", категория "MP3 плееры > test 11", производитель "Apple", статья "Доставка"
      OC 2.2 товар "iPhone", категория "MP3 плееры > test 11", производитель "Apple", статья "Доставка"
      OC 2.3 товар "iPhone", категория "MP3 плееры > test 11", производитель "Apple", статья "Доставка"
       
    • By zemleroi
      300.00 руб
      Скачать/Купить дополнение


      Редирект на произвольный url для товаров,категорий,производителей и статей
      И так 4-е небольших доработки для OpenCart 2.x которые добавляют  функционал редиректа при переходе по ссылке
      1. product_link_redirect.ocmod.xml - можно установить на любой товар, созданный в магазине, произвольную ссылку (как внешнию так и внутреннию). При попытке перехода по ссылке товара в магазине, если параметр не пустой, будет редирект на произвольную ссылку.
      2. catalog_link_redirect.ocmod.xml - можно установить на любую категорию, созданную в магазине, произвольную ссылку (как внешнию так и внутреннию). При попытке перехода по ссылке категории в  магазине, если параметр не пустой, будет редирект на произвольную ссылку.
      3. manufacturer_link_redirect.ocmod.xml - можно установить на любого производителя, созданного в магазине, произвольную ссылку (как внешнию так и внутреннию). При переходе по ссылке производителя в магазине, если параметр не пустой, будет редирект на произвольную ссылку.
      4. information_link_redirect.ocmod.xml - можно установить на любую статью, написанную в магазине, произвольную ссылку (как внешнию так и внутреннию). При переходе по ссылке производителя в магазине, если параметр не пустой, будет редирект на произвольную ссылку.
      Установка стандартная, через модификатор или скопировать файлы в папку system/. Можно использовать модификации как все вместе так и по отдельности, в зависимости от необходимости. Работает так же с SEO линками,так же  на разных языках можно указать свои ссылки
      Протестирована на OC 2.1,2.2,2.3
      Демо:
      OC 2.1 товар "iPhone", категория "MP3 плееры > test 11", производитель "Apple", статья "Доставка"
      OC 2.2 товар "iPhone", категория "MP3 плееры > test 11", производитель "Apple", статья "Доставка"
      OC 2.3 товар "iPhone", категория "MP3 плееры > test 11", производитель "Apple", статья "Доставка"
       
      Добавил zemleroi Добавлено 26.01.2017 Категория Прочее Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет Старая цена  
    • By Lidiia
      Добрый вечер.

      Был сделан редирект сайта hug.com.ua с http to https - https://hug.com.ua сайт и сертификат отобразились после смены всех ссылок и редактирования файлов к каталоге сайта http/.htaccess и http/config.php а также http/admin/config.php 

      но справа появляется иконка с информацией: "страница пытается загрузить скрипты из непроверенных источников" 
      если нажать  "загрузить небезопасные скрипты" то слитает-зачеркивается https сертификат.
      (Сайт на hug.com.ua ocStore OpenCart version 2.1.0.2.1)

      Есть также Landing page https://hug.com.ua/lp/mouse/ сделан дополнительным каталогом Developed on: 
      Bootstrap v3.3.6 (http://getbootstrap.com)
      * Copyright 2011-2015 Twitter, Inc.

      Согласно данной статье https://devaka.ru/articles/moving-to-https
      По вопросу:
      .

      Подскажите пожалуйста, где и как это исправить в области скриптов ?
      Где найти каталог с внешними скриптами в ocStore OpenCart version 2.1.0.2.1 в FTP файлах?
      For example catalog: 
      1) /system
      2) /system/library
       
      Где найти каталог с внешними скриптами в Bootstrap v3.3.6 в FTP файлах? For example catalog: 
      1) /css 
      2) /js
      3) /libs
      К примеру во всех файлах где есть ссылки с http - Bootstrap v3.3.6 (http://getbootstrap.com) изменить в каждом на Bootstrap v3.3.6 (https://getbootstrap.com) ?
      Существует ли специальный плагин или модуль, который перепишет все ссылки с http на httpS автоматически в подключениях внешних скриптов?
       
      Спасибо за ваши будущие ответы. 
    • By artur67
      От яндекса получил письмо , что он поменял главное зеркало сайта. И так каждые 2 дня меняет.  Получается редирект не работает? Сейчас прописано вот так http://joxi.ru/823qQ6eh9yjKqr у меня в .htaccess
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.