Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Смена ссылок с .html на /


Recommended Posts

Приветствую.

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

http://site.com.ua/345-nametovar/ 
http://site.com.ua/category/
...

Подскажите какой редирект нужно вставить в htaccess?

Магазин на OcStore 2.1.0.2.1 и в данный момент используется стандартный htaccess. Включён seopro.

Буду признателен за помощь!

Змінено користувачем AlexBr
Надіслати
Поділитися на інших сайтах


В общем добавил в конце RedirectMatch 301 (.*)\.html$ $1/  и получил желанный 301 ответ сервера.

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Thu, 19 Jan 2017 18:22:42 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: http://example.com/342-tovar/?_route_=342-tovar.html

Сейчас мой htaccess выглядит так. Правильно, не правильно - не знаю точно, но цель достигнута.

 

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

# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

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]

RedirectMatch 301 (.*)\.html$ $1/

Кому интересно: ответы сервера можно проверять тут http://wwhois.ru/response.php вводя старую ссылку

 

Да, ссылки со слешем в конце сделал с помощью seopro поставив в Настройки>Сервер>Окончание ЧПУ сам слеш. Это для тех страниц где не было .html

Змінено користувачем AlexBr
Надіслати
Поділитися на інших сайтах


Пора уже в шапке форума повесить объявление о том, что все редиректы должны быть до строки с

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

 

Вас не смущает, что у вас в заголовках ответа сервера указан такой адрес перехода:

Location: http://example.com/342-tovar/?_route_=342-tovar.html

?

 

Все редиректы надо вписывать сразу после

RewriteBase /

 

  • +1 1
Надіслати
Поділитися на інших сайтах


11 минут назад, Dotrox сказал:

Пора уже в шапке форума повесить объявление о том, что все редиректы должны быть до строки с


RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

 

Не всегда. К примеру некоторые редиректы для https должны быть после этой строки. Иначе получается хзч. (не помню где, но на каком то сервере редирект заработал правильно после переноса за эту строку.)
Это конечно исключение, но "бывает"

Надіслати
Поділитися на інших сайтах

47 минут назад, Dotrox сказал:

Вас не смущает, что у вас в заголовках ответа сервера указан такой адрес перехода:

Переместил сразу после RewriteBase / и ответ сервера не изменился.

Надіслати
Поділитися на інших сайтах


2 часа назад, AlexBr сказал:

Переместил сразу после RewriteBase / и ответ сервера не изменился.

Возможно, дело в том, что за директиву RedirectMatch отвечает другой модуль Apache (mod_alias) и потому она срабатывает параллельно с редиректом для ЧПУ через RewriteRule (mod_rewrite).

Попробуйте так:

RewriteRule ^(.*)\.html$ /$1/ [L,R=301]

 

 

  • +1 1
Надіслати
Поділитися на інших сайтах


8 часов назад, Dotrox сказал:

Попробуйте так:

Получил ответ такого вида

HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 20 Jan 2017 12:07:12 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: http://mysite.com.ua/868-tovar/

Скорее то, что и нужно было видеть как правильный редирект?

Надіслати
Поділитися на інших сайтах


5 часов назад, AlexBr сказал:

Скорее то, что и нужно было видеть как правильный редирект?

Да.

А почему вы изначально использовали RedirectMatch? Такой вариант не часто можно встретить (вероятно, именно из-за нюансов согласования работы разных модулей).

Надіслати
Поділитися на інших сайтах


  • 4 years later...

Ребята, я новичок, поэтому простите заранее...

 

Вопрос похожего содержания (если не такой же)

 

Тоже убрали в конце ссылки .html и теперь стоит вопрос перенаправления извне на верные ссылки уже без html

 

Например:

 

имеется ссылка

 

https://vinegred.ru/eti-dva-brodyachix-shhenka-ne-perestayut-obnimat-drug-druga-dazhe-posle-togo-kak-nashli-dlya-sebya-novyj-dom.html/

 

как сделать так, чтобы кликнувший на неё человек не получил ошибку, а перешёл на правильную статью без html

 

Подскажите, пожалуйста, какой редирект нужно вставить в htaccess? Заранее огромное спасибо!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.