hiti22

[Решено] Правила .htaccess редиректа не работают

Рекомендуемые сообщения

hiti22    0

# Закрыть доступ к файлам шаблонов
<FilesMatch "\.(tpl|ini|log|txt)">
#Order deny,allow
Deny from all
</FilesMatch>
<Files robots.txt>
Allow from all
</Files>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.roliki.od.ua$ [NC]
RewriteRule ^(.*)$ http://roliki.od.ua/$1 [R=301,L]
Redirect 301 /publ/rolikovye_konki/explore/roliki_explore_a_09/9-1-0-94 http://roliki.od.ua/roliki/a-4200/
RewriteBase /docs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*) /index.php?_route_=$1 [L,QSA]
#Options +FollowSymlinks


Редирект простого типа (Redirect 301 /publ/rolikovye_konki/explore/roliki_explore_a_09/9-1-0-94 http://roliki.od.ua/roliki/a-4200/) никак не хочет работать, похоже что мешает правило которое отвечает за ЧПУ. Может кто сталкивался, я в программировании не силен, не могу понять что он от меня хочет :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
hiti22    0

Когда комментируют эту строку

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

сайт перестает работать, но редирект начинает работать правило

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
fanton123    12

У меня тоже не получается, надо модифицировать правило. У меня после правильного урла дописывает (?_route_=) и дальше пишет старый урл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Arseo    0

Та же проблема: не работает простой 301 редирект. Как только уже не пробовал.

Когда комментирую строку RewriteRule ^([^?]*) /index.php?_route_=$1 [L,QSA] - редирект все равно не работает (зато сайт - да, перестает работать).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ravilr    481

Обратитесь к хостеру, он вообще разрешает вам 301 редирект. Видел у хостеров в тарифных планах... нет 301 редиректа, а в другом есть.

ну и конечно проверить не на опенкарте, на на просто пару файлов html и ссылок на них.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Универсальный редирект всех 404, 301 и прочих на главную страницу сайта

catalog/controller/error/not_found.php

в самом начале после

<?php

<?php
header("Location: http://вашсайт");
exit;

и всё. Enjoy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
mario2005    2

Универсальный редирект всех 404, 301 и прочих на главную страницу сайта

catalog/controller/error/not_found.php

в самом начале после

<?php

<?php
header("Location: http://вашсайт");
exit;

и всё. Enjoy

перенаправлять с несуществующих страниц на главную это и пользователя запутает в конец и поисковики нормально индексировать сайт не смогут

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Yesvik    485

Универсальный редирект всех 404, 301 и прочих на главную страницу сайта

catalog/controller/error/not_found.php

в самом начале после

<?php

<?php
header("Location: http://вашсайт");
exit;

и всё. Enjoy

Если не хотите проблем с поисковиками никогда так не делайте....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я решил проблему редиректа 301 с помощью админ панели хостинга. Не знаю как у других панелей но ISPmanager есть така функция.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
qwertas    1

Столкнулся с такой-же проблемой. Надо было сделать перенаправление с http://cardopt.com.u...ptom_v_ukraine/ на http://cardopt.com.ua/tovary_detjam/

Решение такое. Добавить в начало файла! .htaccecc (после 2-й строки) такую запись:

RewriteCond %{HTTP_HOST} ^cardopt.com.ua$ [OR]

RewriteCond %{HTTP_HOST} ^www.cardopt.com.ua$

RewriteRule ^tovary_detjam_optom_v_ukraine/$ "http://cardopt.com.ua/tovary_detjam/" [R=301,L]

Конечно-же мои пути замените на свои по аналогии. Все работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
vikingshop    9

RewriteCond %{HTTP_HOST} ^cardopt.com.ua$ [OR]

RewriteCond %{HTTP_HOST} ^www.cardopt.com.ua$

Зачем вы вообще эти правила пишите? У вас еще есть на этом же месте куча субдоменов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
qwertas    1

Да, есть еще 9 субдоменов. Но не в этом дело. Смысл в том, чтобы установить общее правило для адресов с WWW и без WWW.

Изменено пользователем qwertas

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
kalyaba27    2

Ребята, доброго времени суток, одно з решений

Включите ЧПУ. Админ панель - Система - Настройки - (Выбираем название вашего магазина) - Изменить.

Вкладка "Сервер" - Включить ЧПУ - ставим "Да"

Тип ЧПУ: "Умолчание"

ЧПУ товаров с категориями: "Нет"

Окончание ЧПУ: ".html"

Жмем "Сохранить"

В корне сайта (магазина) находится файл ".htaccess.txt". Переименовываем его в ".htaccess"

Добавить в файле .htaccess после строки # SEO URL Settings

RewriteEngine On

следующее

RewriteCond %{HTTP_HOST} ^www.ваш_сайт.ua

RewriteRule ^(.*)$ http://ваш_сайт.ua/$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]

должно выглядеть

# SEO URL Settings

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.ваш_сайт.ua

RewriteRule ^(.*)$ http://ваш_сайт.ua/$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]

Далее а настройках "Товары" и "Категории" находим вкладку "Данные" - в ней находим "SEO URL". В поле пишем название категории или товара какое нужно, типа:

categoria

tovar

В результате url примет вид: http://ваш_сайт.uа/categoria/tovar.html

о главной странице

Если кликнуть на логотип вверху сайта с надписью "opencart" или на ссылку вверху "Главная", то открывается главная страница, но в адресной строке url имеет примерно такой вид: http://site.ru/index.php?route=common/home.'>http://site.ru/index.php?route=common/home. Уберем лишнее из url, так, чтобы ссылка при клике приняла вид: http://site.ru/

Для этого подредактируем файл "url.php" (путь: system/library/url.php)

Находим строчки (с 25 по 27):

if ($args) {

$url .= str_replace('&', '&', '&' . ltrim($args, '&'));

}

После них вставляем следующий кусок:

else {

if($route == 'common/home') {

if($connection == 'NONSSL') { return HTTP_SERVER; }

else { return HTTPS_SERVER; }

}

}

Все, задача решена.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Saimon    1

Ребята, доброго времени суток, одно з решений

Включите ЧПУ. Админ панель - Система - Настройки - (Выбираем название вашего магазина) - Изменить. 
Вкладка "Сервер" - Включить ЧПУ - ставим "Да"
Тип ЧПУ: "Умолчание"
ЧПУ товаров с категориями: "Нет"
Окончание ЧПУ: ".html"
Жмем "Сохранить"
В корне сайта (магазина) находится файл ".htaccess.txt". Переименовываем его в ".htaccess"

Добавить в файле .htaccess после строки # SEO URL Settings
RewriteEngine On

следующее


RewriteCond %{HTTP_HOST} ^www.ваш_сайт.ua
RewriteRule ^(.*)$ http://ваш_сайт.ua/$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]

должно выглядеть

# SEO URL Settings

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.ваш_сайт.ua
RewriteRule ^(.*)$ http://ваш_сайт.ua/$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]

Далее а настройках "Товары" и "Категории" находим вкладку "Данные" - в ней находим "SEO URL". В поле пишем название категории или товара какое нужно, типа:
categoria
tovar 

В результате url примет вид: http://ваш_сайт.uа/categoria/tovar.html 

о главной странице

Если кликнуть на логотип вверху сайта с надписью "opencart" или на ссылку вверху "Главная", то открывается главная страница, но в адресной строке url имеет примерно такой вид: http://site.ru/index.php?route=common/home. Уберем лишнее из url, так, чтобы ссылка при клике приняла вид: http://site.ru/
Для этого подредактируем файл "url.php" (путь: system/library/url.php)
Находим строчки (с 25 по 27):


if ($args) {
$url .= str_replace('&''&''&' . ltrim($args'&'));
}


После них вставляем следующий кусок:


else {
if($route == 'common/home') {
if($connection == 'NONSSL') { return HTTP_SERVER; }
else { return HTTPS_SERVER; }
}
}




Все, задача решена.

 

Сделал все как выше. Да перекидывает, но вот урл кривой какой то...

Вот, например прописываю я 

 

Redirect 301 /magaz/veshalki http://saimonzl.bget.ru/veshalki/

 

При переходе на http://saimonzl.bget.ru/magaz/veshalki меня перекидывает на

http://saimonzl.bget.ru/veshalki/?_route_=magaz/veshalki а должно на  http://saimonzl.bget.ru/veshalki/

 

В чем проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребята, доброго времени суток, одно з решений

Включите ЧПУ. Админ панель - Система - Настройки - (Выбираем название вашего магазина) - Изменить. 

Вкладка "Сервер" - Включить ЧПУ - ставим "Да"

Тип ЧПУ: "Умолчание"

ЧПУ товаров с категориями: "Нет"

Окончание ЧПУ: ".html"

Жмем "Сохранить"

В корне сайта (магазина) находится файл ".htaccess.txt". Переименовываем его в ".htaccess"

Добавить в файле .htaccess после строки # SEO URL Settings

RewriteEngine On

следующее

RewriteCond %{HTTP_HOST} ^www.ваш_сайт.ua

RewriteRule ^(.*)$ http://ваш_сайт.ua/$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]

должно выглядеть

# SEO URL Settings

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.ваш_сайт.ua

RewriteRule ^(.*)$ http://ваш_сайт.ua/$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]

Далее а настройках "Товары" и "Категории" находим вкладку "Данные" - в ней находим "SEO URL". В поле пишем название категории или товара какое нужно, типа:

categoria

tovar 

В результате url примет вид: http://ваш_сайт.uа/categoria/tovar.html 

о главной странице

Если кликнуть на логотип вверху сайта с надписью "opencart" или на ссылку вверху "Главная", то открывается главная страница, но в адресной строке url имеет примерно такой вид: http://site.ru/index.php?route=common/home. Уберем лишнее из url, так, чтобы ссылка при клике приняла вид: http://site.ru/

Для этого подредактируем файл "url.php" (путь: system/library/url.php)

Находим строчки (с 25 по 27):

if ($args) {

$url .= str_replace('&''&''&' . ltrim($args'&'));

}

После них вставляем следующий кусок:

else {

if($route == 'common/home') {

if($connection == 'NONSSL') { return HTTP_SERVER; }

else { return HTTPS_SERVER; }

}

}

Все, задача решена.

 

Сделал все как выше. Да перекидывает, но вот урл кривой какой то...

Вот, например прописываю я 

 

Redirect 301 /magaz/veshalki http://saimonzl.bget.ru/veshalki/

 

При переходе на http://saimonzl.bget.ru/magaz/veshalki меня перекидывает на

http://saimonzl.bget.ru/veshalki/?_route_=magaz/veshalki а должно на  http://saimonzl.bget.ru/veshalki/

 

В чем проблема?

Разобрались в причине?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
targus207    0

Супер, все работает.

Никто в инете больше не дописал, что надо редактировать url.php

День потерял, за 5 минут сделал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Valentinus    0

Супер, все работает.

Никто в инете больше не дописал, что надо редактировать url.php

День потерял, за 5 минут сделал.

 

что и как именно отредактировать опиши пожалуйста!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Zudva    0

 

о главной странице

Если кликнуть на логотип вверху сайта с надписью "opencart" или на ссылку вверху "Главная", то открывается главная страница, но в адресной строке url имеет примерно такой вид: http://site.ru/index...te=common/home. Уберем лишнее из url, так, чтобы ссылка при клике приняла вид: http://site.ru/

Для этого подредактируем файл "url.php" (путь: system/library/url.php)

Находим строчки (с 25 по 27):

if ($args) { 

$url .= str_replace('&''&''&' . ltrim($args'&')); 

После них вставляем следующий кусок:

else { 

if($route == 'common/home') { 

if($connection == 'NONSSL') { return HTTP_SERVER; } 

else { return HTTPS_SERVER; } 

 

 

У меня только на главной сработало.

 

А так все же выдает route=

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
detyshop    0

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

Проблема появилась которую не могу решить уже 2 суток.

Был у меня сайт на одном самописном движке, решил я всю базу перенести на ocstore.

сейчас пытаюсь сделать редирект со старых ссылок на новые,т.е.

 

на старом движке вид ссылки на товар был таким: catalog.php?tovar_id=35

сейчас стоит или стандартная ocstore ссылка или ЧПУ.

 

Помогите сделать команду в .htaccess

Все возможные варианты перепробовал, ничего не получается. вообще никак не реагирует.

​Может я не в то место устанавливаю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу