Codeigniter: что если я хочу, чтобы оба URL с index.php и без index.php работали - PullRequest
0 голосов
/ 15 декабря 2011

Я хочу, чтобы и index.php включенные, и index.php исключенные из моих URI работали без проблем на моем сайте.Мне это нужно из-за того, что uploadify не работает и выдает ошибку HTTP.

Это работает, если я изменил

$config['uri_protocol'] = 'AUTO';

на этот

$config['uri_protocol'] = 'QUERY_STRING';

, но тогда вся система не работает должным образом.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Перейдите по ссылке в комментарии от Indranil выше, чтобы удалить index.php из ваших URI, изменив файл .htaccess.

Здесь снова приведен адрес для справки:

http://codeigniter.com/user_guide/general/urls.html

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

Я также хотел бы знать, как вы используете свои ссылки, но я пойду дальше и объясню, что, по моему мнению, может с вами происходить,Если вы делаете какую-либо ссылку / привязку или redirect(), используя URL Helper в CodeIgniter, убедитесь, что вы используете правильную функцию для выполнения этих действий.Вот что я имею в виду:

Функция / метод site_url() всегда будет включать index.php в ваши URI.Вот пример использования имени сайта http://example.com в качестве домена вашего сайта.

<?php echo site_url('home') ?> превратится в http://example.com/index.php/home

В то время как base_url() функция / метод всегда исключает index.php, если толькоВы включаете это.Вот пример использования имени сайта http://example.com в качестве домена вашего сайта.

<?php echo base_url('home') ?> превратится в http://example.com/home

и

<?php echo base_url('index.php/home') ?> превратится в http://example.com/index.php/home

Имейте в виду, что использование этих функций / методов эффективно только ПОСЛЕ того, как вы правильно изменили файл .htaccess.

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

http://codeigniter.com/user_guide/helpers/url_helper.html

Надеюсь, это поможет!

0 голосов
/ 15 декабря 2011

Для ваших активов, во-первых, на config.php установите $config['base_url'] на URL вашего сайта.

Затем, при ссылке на ресурсы, для которых вы НЕ хотите index.php, просто используйте функцию base_url

<?php echo base_url("assets/uploadify/uploadify.swf"); ?>
// Generates http://URL/assets/uploadify/uploadify.swf
...