2015-01-04 3 views
0

Это одна из тех проблем, которые заставляют меня подвергать сомнению мое здравомыслие. Я использую php, codeigniter framework, удаляя index.php из URL с mod rewrite в htaccess.Поведение странного канала в кодеигниторе

Я по этому адресу

http://localhost/health/users/bob/progress/ 

я нажимаю ссылку, которая принимает меня

http://localhost/health/users/bob/progress/01-04-15 

Затем я нажимаю на ссылку, которая возвращает меня к

http://localhost/health/users/bob/progress/ 

Теперь вот странная вещь. Я нажимаю на той же ссылке, что ранее взял меня

http://localhost/health/users/bob/progress/01-04-15 

Но вместо этого, теперь он принимает меня

http://localhost/health/users/bob/progress/progress/01-04-15 

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

http://localhost/health/users/bob/progress/ 

для правильной работы снова. Я предполагаю, что это связано либо с переписыванием мод, либо с каким-либо другим переписывающим поведением в системе codeigniter.

+0

Странное поведение не происходит при программировании, если вы не сделали что-то, что вы не можете понять. Вы написали код? Какова ваша пользовательская функция под контроллером работоспособности (или функция bob под пользовательским контроллером), нравится? –

ответ

1

Я уверен, что вы используете относительный путь для ссылки, которая идет что-то вроде:

<a href="/somerelativepath">link here</a> 

Я хотел бы предложить, что вы используете base_url CI вместо так, что связь становится абсолютным:

<a href="<?=base_url()?>/nowabsolutepath">link here</a> 

base_url установлен в вашем файле конфигурации. Пожалуйста, дайте нам знать, как это происходит!

+0

Это определенно работает, и base_url не позволяет мне менять код при переходе на другую структуру каталогов, так что определенно отметьте галочку, но я определенно не понимаю, что вызвало проблему в первую очередь. – Goose

1

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

href="progress/01-04-15" 

Попробуйте сделать вашу ссылку, используя абсолютный путь, предпочтительно, добавляя его base_url или current_url из codeigniter + прогресс/дата.

href="http://localhost/health/users/bob/progress/01-04-15" 

Таким образом, вы получите правильную ссылку каждый раз, вместо добавления ее к текущему URL-адресу.

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