2015-09-07 5 views
0

сказать у меня есть этот код,CI base_url (спутанность)

<a href="register">Join</a> 

, что ссылка будет на главной странице, URL-адрес этой страницы будет,

локальных/Project/главный

Основным является контроллером и есть функция индекс, который загружает вид на домашнюю страницу. Я настроил верхний и нижний колонтитулы в качестве шаблонов, поэтому в моей индексной функции у меня было бы.

 $this->load->view('templates/header'); 
     $this->load->view('templates/navigation'); 
     $this->load->view('homepage'); 
     $this->load->view('templates/footer'); 

Когда я нажимаю на джойна ссылке, которая находится в шаблоне навигации, URL-адрес будет,

локальный/Project/главная/регистрация

на функции регистра на главном контроллере я помещаю простую функцию эха, чтобы увидеть, работает ли он и работает.

проблема заключается в том, что я запутался, я искал, как правильно ссылаться из представлений на другие представления в CI, и я вижу используемую функцию base_url() или site_url(), я использую base_url, потому что я вынул индекс. PHP на моей ссылке с .htaccess

путаница в том, что, если я использую функцию base_url() говорят,

<a href="<?php echo base_url(); ?>main/register">Join</a> 

и, конечно, base_url на моей конфигурации является локальный/Project /, поэтому я ожидаю ссылку также перейти к главному контроллеру/и быть как,

локальный/Project/главная/регистрация, но то, что я получаю,

http://localhost/Project/localhost/Project/main/register

Что им путать является то, что я думал, или до сих пор я думал, что если я когда-либо нажмите на ссылку на URL будет обновить или что-то еще. или я ошибаюсь?

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

+0

Какие правила вы определили в своем файле .htaccess? – user1885057

+0

Пожалуйста, проверьте файл .htaccess, а также сделать помощник уверен URL в настоящее время включен в autoload.php –

+0

RewriteEngine На RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule ^ (. *) $ Индекс. php/$ 1 [L] –

ответ

1

Нет index.php

Вы, наверное, сделал это уже, но только, чтобы быть полным ...

Если вы хотите чтобы иметь ваши адреса без index.php, вам нужно сделать две вещи:

Сначала удалите index.php с config.php.

В строке 32, изменение:

$config['index_page'] = 'index.php'; 

к:

$config['index_page'] = ''; 

Во-вторых, добавить переписывают в свой .htaccess.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

base_url() или site_url()

CodeIgniter пытается угадать base_url вашего сайта, если это не так, вы можете изменить его в config.php файл по линии 20, чуть выше index_page. Рекомендуется, чтобы вы установили это вручную.

base_url() печатает, как следует из его названия, базового URL-адреса, который либо установлен в вашем файле config.php, либо угадан CodeIgniter. Используйте это, например, чтобы обеспечить абсолютные пути к css или js файлов, например:

<link rel="stylesheet" type="text/css" href="<?=base_url()?>assets/style.css"> 

site_url() генерирует весь URL для controller/method. Используйте его так:

<a href="<?=site_url('main/register')?>">Register</a> 

Если ваш base_url, например, http://localhost/Project/, это произведет http://localhost/Project/main/register.

+0

Я следил за руководствами в Интернете о том, как удалить index.php, и действительно, я удалил его .. мой url работает отлично, index.php хотя в моей конфигурации у меня все еще был index.php в качестве моей конфигурации ['index_page'] что он делает? –

+0

Ну, CodeIgniter считает '$ config ['base_url']."/". $ Config ['index_page']' быть главной страницей. По умолчанию «http: // localhost/Projects» действительно перенаправит вас в файл 'index.php' (или, по крайней мере, он используется). Я помню, что документация 2.x упоминает, что это должно быть удалено из файла конфигурации. Однако не заметили это в документах 3.x, возможно, больше не нужны. – ROAL

Смежные вопросы