помогите мне с этим.
Возьмем пример: у меня есть этот обычный url «localhost / CI / index.php / base / storeurl».
Как я могу сообщить Codeigniter для поиска «localhost / CI / storeurl».
У меня есть функция с именем index и она принимает параметр storeURL в классе Base.php. Помогите мне с этим. Заранее спасибо.
Наконец я нашел то, что искал. Вот как выглядит мой код в routes.php.
/* Custom Routes. */ // Store Normal Pages. $route['home/(:any)'] = "base/home/$1"; $route['about/(:any)'] = "base/about/$1"; $route['services/(:any)'] = "base/services/$1"; $route['contact/(:any)'] = "base/contact/$1"; $route['feedback/(:any)'] = "base/feedback/$1"; // CategoryPage. $route['category/(:any)/(:num)'] = "base/category/$1/$2"; // ProductPage. $route['product/(:any)/(:num)'] = "base/product/$1/$2"; // For Main Home Page. $route['(:any)'] = "base/home/$1";
Я действительно ценю всех, кто помог мне решить эту проблему. Спасибо вам, ребята.
Только три шага требуют удаления index.php
из url в CodeIgniter в среде WAMP.
1) Создайте файл .htaccess
параллельно держателю приложения и просто скопируйте следующий код:
RewriteEngine On RewriteBase /CodeIgniter/ RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ /index.php/$1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L]
2) Измените $config['index_page']
на blank в config.php
в папке приложения, как $config['index_page']
ниже:
$config['index_page'] = '';
3) Включить rewrite_module
apache.
Вы также можете обратиться к http://goo.gl/3jfW8f
Вот несколько псевдокодов и несколько пунктов в правильном направлении, чтобы вы начали.
Во-первых, вам нужно будет удалить index.php из ваших URL-адресов. Здесь должны быть сотни вопросов, уже отвечающих на эту часть вопроса, поэтому я оставлю эту часть вам.
Как многие прокомментировали, нет способа получить эту структуру url из коробки, и для ее работы потребуется довольно много кода. То, как я буду реализовывать эту конкретную настройку, будет направлять все запросы на один контроллер и обрабатывать настраиваемую маршрутизацию внутри этого контроллера.
Для этого добавьте маршрут в нижнюю часть routes.php
как поймать все. После этого можно добавить маршруты для других контроллеров (новости, события и т. Д.). Ниже приведен пример route.php, чтобы вы начали.
конфиг / routes.php
// Other routes go up here // Catch all route $route['(:any)'] = 'page/view'; // Home page route $route['default_controller'] = "page/index";
Затем вы могли бы создать функцию view
в controllers/page.php
, которая проверит URL-адрес (используя помощник URL-адреса codeigniters) и загрузит правильный вид, соответствующий этому URL-адресу.
Контроллеры / page.php
class Page extends CI_Controller { public function index() { // Do all code for your home page in here } public function view() { // Retrive the url string $url = $this->uri->uri_string(); // Check if the corresponding view file exists if (file_exists(APPPATH.'views/'.$url.'/index.php')){ // Load the view $this->load->view($url.'/index'); } else { show_404(); } } }
Скажем, например, пользователь перешел на http://yoursite.com/CI/about-us
, функция просмотра http://yoursite.com/CI/about-us
управления страницами взяла строку about-us
из url и установила ее как переменную $ url, а затем выполнила поиск файловой структуры, чтобы проверить, существует ли соответствующий файл представления /application/views/about-us/index.php
. Если это произойдет, он загрузит этот файл просмотра, если он не перенаправит его на 404.
Вышеприведенный псевдокод вводится из памяти, поэтому он, вероятно, не сработает сразу, но, надеюсь, даст вам представление о том, как достичь желаемого результата.
Я всегда не могу получить работу на работу. наконец, я нашел решение. Я просто хочу поделиться, чтобы помочь нуждающимся людям, поскольку мне очень нравится кодифицировать, поскольку он быстрый и легкий. Я работаю над названием динамической категории, чтобы отобразить на сегменте $ this-> uri-> (1).
$route['(:any)/method/(:any)'] = 'Class/method'; $route['(:any)/gallery/(:any)'] = 'Class/gallery'; $route['(:any)/listing/(:any)'] = 'Class/listing';
Маршрут отметит, что до тех пор, пока $ this-> uri-> segment (2) является методом, он перейдет к выполнению метода Class. Ваш URL будет красивым:
base_url()/business-services/gallery/6 base_url()/travel/gallery/12
Я также узнал, что маршрут должен быть конкретным. если URL-адрес похож:
base_url () / путешествия / сингапур / реклама / 1201
Тогда ваш маршрут должен быть:
$route['(:any)/(:any)/listing/(:num)'] = 'Class/listing';
если у вас есть параметр для передачи в методе (в зависимости от того, используете ли вы параметр или uri_segment)
$route['(:any)/(:any)/listing/(:num)'] = 'Class/listing/$1';
повеселись 🙂