Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как изменить формат УРЛ с "-" на "/"

306
19 февраля 2015 года
order.daemon
275 / / 11.05.2007
В общем хочется привести магазин в порядок и разобраться раз и на всегда с форматом урл или как говорят ЧПУ ссылки.

Сейчас планирую оформлять ссылки в формате /product-ID
но хотелось бы получить ссылку в формате /product/ID

Цмс могу заставить создавать такой УРЛ автоматически, а вот файл .htaccess не поддается. Ошибки уже спать не дают.

Подскажите или помогите за вознаграждение.
4
19 февраля 2015 года
mike
3.7K / / 01.10.2002
Вообще, если CMS обрабатывает URLы, то в mod_rewrite только одно правило - все что не найдено, перенаправлять обработчику CMS.

Например, у Wordpress такое перенаправление:
 
Код:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
349
20 февраля 2015 года
Phantom-84
656 / / 27.10.2005
Все верно, только там еще директива включения должна быть.

Еще, если магазин создан не вчера, нужно делать 301-ое перенаправление со старых адресов на новые. Кстати, особой разницы в плане ЧПУ между вариантом с черточкой и слешем нет, так что имеет смысл еще раз подумать, нужно ли изменять адресацию.

Вообще делается элементарно. Примерно так:
 
Код:
RewriteRule ^product-(.+) /product/$1 [NC,R=301,L]
306
24 февраля 2015 года
order.daemon
275 / / 11.05.2007
Магазин новый на новом OpenCart 2.1.1
306
24 февраля 2015 года
order.daemon
275 / / 11.05.2007
Так не срабатывает

Код:
Options +FollowSymlinks
Options -Indexes

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

RewriteEngine On
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]
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]
RewriteRule ^product-(.+) /product/$1 [NC,R=301,L]
306
24 февраля 2015 года
order.daemon
275 / / 11.05.2007
Вернул все назад, но ссылка по прежнему перенаправляет на = product/4001499908347
4
24 февраля 2015 года
mike
3.7K / / 01.10.2002
Цитата: order.daemon
Вернул все назад, но ссылка по прежнему перенаправляет на = product/4001499908347

Может убрать "R=301"??

306
24 февраля 2015 года
order.daemon
275 / / 11.05.2007
Проверил. без "R=301" вообще не срабатывает.
4
24 февраля 2015 года
mike
3.7K / / 01.10.2002
Цитата: order.daemon
Проверил. без "R=301" вообще не срабатывает.

А вам разве не это нужно было?

Цитата:
Вернул все назад, но ссылка по прежнему перенаправляет на

306
25 февраля 2015 года
order.daemon
275 / / 11.05.2007
Не.
У меня есть ссылки в формате product-4009175191908, их я прописываю в отдельном поле CMS.
Если в этом же поле я укажи формат с "/", а именно= " product/4009175191908 " то появляется не найденная страница. Вот я и хочу с помощью файла htaccess изменить формат ссылок на /product/4009175191908
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог