Переадресация кода с помощью base_url - PullRequest
2 голосов
/ 13 июня 2010

Я заметил, что anchor('controller/method') дает результат, отличный от простого <a href="controller/method">, в котором anchor() добавляет base_url:

anchor('controller/method')

<a href="http://localhost/dts/controller/method">Link</a>

<a>:

<a href="controller/method">Link</a>

Как мне добиться такого же эффекта (привязки) в моем контроллере? То есть добавление base_url в мои перенаправления?

Я спрашиваю, потому что у меня есть форма, которая вызывает другой метод method2, который имеет redirect('controller/method'). Но он неправильно перенаправляет на controller/controller/method2, затем, если форма отправляется снова, перенаправляется на controller/controller/controller/method2 и т. Д.

Вот почему я хотел бы знать, как перенаправить к контроллеру / методу с предварительно добавленным base_url. redirect( base_url() . 'controller/method' ) не работает.

index_page установлен в:

$config['index_page'] = "";

base_url имеет значение:

$config['base_url'] = "http://localhost/program/";

.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

это основано на это , потому что .htaccess, предоставленный руководством по CI, не работает.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 13 июня 2010

Почти кемп, но без косых черт.

redirect('controller/method');

На что установлена ​​ваша $ config ['base_url'], потому что вы используете правильные функции и получаете неправильную функциональность.

0 голосов
/ 13 июня 2010

Я думаю, что вы хотите redirect( site_url('controller/method') );

Не забудьте добавить класс URL Helper перед использованием $this->load->helper('url');.

0 голосов
/ 13 июня 2010
redirect('/controller/method');
...