Я создал своего рода CMS с помощью CodeIgniter. Он загружает содержимое страницы из базы данных в зависимости от текста slug
, переданного в параметре URL, например, например. о, услуги, контакты.Как загрузить страницу с помощью контроллера Codeigniter?
В коде контроллера, я переназначил метод индекса, чтобы взять slug как параметр к нему, поскольку методы индекса по умолчанию не позволяют параметры. Проверьте код моего page
контроллера на ссылку ниже:
Как это работает, я поставил page
контроллер для загрузки по умолчанию. Таким образом, каждый раз, когда я открываю свой сайт, как этот
он загружает контроллер, как этот
Если мы переходим слизняка к нему, он загружает содержимое страницы этого слизняка из базы данных, как этот
http://www.mysite.com/page/about http://www.mysite.com/page/portfolio
Если мы не пропустим слизню, он загрузит домашнюю страницу.
Теперь, что я хочу сделать, я не хочу, чтобы этот текст «страницы» отображался в URL-адресе. Поэтому страницы должны открываться как этот
http://www.mysite.com/portfolio
Я предполагаю, что это будет возможно через URL переписывания. Я уже переписал URL-адрес для удаления index.php
из URL-адреса, который обычно выполняется для всех веб-сайтов Codeigniter. Ниже приведен код моего файла .htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php|uploads|fckeditor|assets|robots\.txt)
RewriteRule ^(.*)$ /jobsite/index.php/$1 [L]
Теперь вопрос, как я могу сделать URL работать следующим
http://www.mysite.com/portfolio
Заранее спасибо.
gr8, это сработал. как я могу добавить исключение для некоторых контроллеров, таких как/admin_panel,/order_manager и т. д. – aslamdoctor
@aslamdoctor из документации CI: «Маршруты будут выполняться в том порядке, в котором они определены. Более высокие маршруты всегда будут иметь приоритет над более низкими». Если это сработало, вы хотите принять его как правильный ответ? :) – yrosen
, конечно, принимаем. но если вы можете помочь мне с этой вещью admin_panel, это будет оценено :) – aslamdoctor