@almassar
web программист

Как убрать имя контроллера в url через htaccess?

У меня сайт на codeigniter. Мне нужно убрать имя контроллера из url только главной страницы,
то есть сделать 301 Redirect c http://site.ru/controller_name на http://site.ru

Вот мой htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
RewriteRule ^controller_name$ http://site.ru/ [R=301,L]
Вот эти правила вообще не работают.

Если делать так, то тогда controller_name убирается из всех url, а мне нужен редирект только на главную страницу
#Redirect 301 /controller_name/ /
  • Вопрос задан
  • 542 просмотра
Пригласить эксперта
Ответы на вопрос 2
@braun2002
Не понял проблемы. Если вам нужен редирект с контроллера на главную страницу не проще так и прописать в дефолтном экшене?
Ответ написан
Комментировать
Не знаю актуален ли еще вопрос, но решение вот:

1. В htaccess ничего не трогаем.
2. Идем в application/config/routes.php
3. Чтобы ссылки www.site.ru/main/hello заменить на www.site.ru/hello добавляем в этот файл строку
$route['(:any)'] = "main/$1"; где main - имя контроллера которое хотим скрыть.
4. Старые ссылки в меню (или где они у Вас расположены) в виде www.site.ru/main/hello
заменить на www.site.ru/hello.
5. Всё готово! Теперь в url не будет отображаться контроллер main

Удачи!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы