Помогите с .htaccess

InstantCMS 2.X
#1 31 марта 2017 в 15:50
Здравствуйте.
Вот такая у меня проблема:
Если набрать salik.biz/articles/raznoe то идет переадресация на salik.biz/articles/raznoe (это правильно)
Если набрать salik.biz/articles/25590-peschery-ozyora-stalaktity-chto-eschyo-manit-speleologov-pod-zemlyu.html (прямая ссылка на любую статью) то выдает ошибку "Страница salik.biz не работает" а должен по идее переадресовать на salik.biz/articles/25590-peschery-ozyora-stalaktity-chto-eschyo-manit-speleologov-pod-zemlyu.html

  1.  
  2. Options +FollowSymLinks
  3. RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
  4. RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
  5.  
  6. RewriteCond %{HTTPS} off
  7. RewriteCond %{HTTP:X-Forwarded-Proto} !https
  8. RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  9.  
#2 31 марта 2017 в 22:20
SALIK, а если восьмую строку сменить на:

RewriteRule ^(.*)$ %{HTTP_HOST}/$1 [R=301,L]
#3 1 апреля 2017 в 10:42
У меня когда-то такое правило правильно работало для редиректа на httpS:

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{HTTP:SSL} !=1 [NC]
  4. RewriteRule ^(.*) https://www.сайт.com/$1 [L,R=301]
Позже кнопка "Редирект с http на httpS" появилась для сайта в настройках хостинга, и после этого там включил редирект, чтобы после обновления системы не затирался в .htaccess.
#4 18 августа 2023 в 11:17

Подскажите как правильно прописать в .htaccess переадресацию

С /news/v-rostove-na-donu-rybak-poimal-amura-dlinoi-pochti-poltora-metra.html

На /news/10888-v-rostove-na-donu-rybak-poimal-amura-dlinoi-pochti-poltora-metra.html

И таких страниц очень много..

#5 19 августа 2023 в 10:30

 R161Net, универсального решения с помощью htaccess нет для вашего случая, поскольку веб-серверу неизвестно о префиксе (10888-), который нужно добавлять.

#6 19 августа 2023 в 11:48

Подскажите как правильно прописать в .htaccess переадресацию

С /news/v-rostove-na-donu-rybak-poimal-amura-dlinoi-pochti-poltora-metra.html

На /news/10888-v-rostove-na-donu-rybak-poimal-amura-dlinoi-pochti-poltora-metra.html

И таких страниц очень много..

R161Net

В .htaccess никак. Можно сделать хуком.

1. В папке system/controllers создайте папку newsredirect, а в ней создайте файл frontend.php с кодом:

  1. <?php class newsredirect extends cmsFrontend {
  2.  
  3. }

2. В только что созданной папке system/controllers/newsredirect создайте папку hooks, а в ней файл core_start.php с кодом:

  1. <?php class onNewsredirectCoreStart extends cmsAction {
  2.  
  3. public function run() {
  4. $ctype_name = 'news';
  5. $uri = $_SERVER['REQUEST_URI'];
  6. $uri_ex = explode('/', $uri);
  7. if ($uri_ex[1] != $ctype_name || !isset ($uri_ex[2])) { return true; }
  8. $slug = str_replace('.html', '', $uri_ex[2]);
  9. $items = cmsCore::getModel('content')->filterLike('slug', '%'.$slug)->get('con_'.$ctype_name);
  10. if (!$items) { return true; }
  11. $redirect_item = '';
  12. foreach ($items as $item) {
  13. if ($item['slug'] != $item['id'].'-'.$slug) { continue; }
  14. $redirect_item = $item;
  15. }
  16. if (!$redirect_item) { return true; }
  17. $this->redirectTo(href_to($ctype_name, $item['slug'].'.html'), '', [], [], 301);
  18. return true;
  19. }
  20.  
  21. }

3. Обновите события в админке.

Не проверял, но вроде должно работать. Если не сработает, можно удалить созданные папки/файлы и обновить события в админке чтобы вернуть всё, как было.

#7 19 августа 2023 в 14:11

 Нифигаccе о-го-гошеньки, Спасибо! Опробую..

#8 20 августа 2023 в 14:38

 Нифигаccе о-го-гошеньки, Код работает, но перенаправляет страницу на главную сайта..

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

Спасибо Вам за решение.

#9 27 августа 2023 в 22:32

 Нифигаccе о-го-гошеньки, Подскажите почему при удалении папки ошибка 503 и нет возможности обновить события?

#10 27 августа 2023 в 22:54

Попробуйте сначала удалить хук (файл в папке hooks), потом обновить события, а потом удалить папку.

#11 28 августа 2023 в 08:11

 Нифигаccе о-го-гошеньки, Огромное спасибо! Так все работает..

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