2015-01-04 4 views
0

이것은 내 정신을 의심스럽게 만드는 문제 중 하나입니다. PHP, codeigniter 프레임 워크를 사용하고 있습니다. htaccess에서 mod 재 작성을 사용하여 URL에서 index.php를 제거합니다.codeigniter의 이상한 링크 동작

내가이 주소에있어

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/ 

을 다시 제대로 작동시켜야합니다. mod 재 작성이나 codeigniter 프레임 워크의 다른 재 작성 동작과 관련이 있다고 생각합니다.

+0

당신이 알아낼 수없는 것을하지 않으면 이상한 행동이 프로그램에서 발생하지 않습니다. 코드를 작성 했습니까? 헬스 컨트롤러 (또는 사용자 컨트롤러 아래의 밥 기능)에서 사용자 기능은 무엇입니까? –

답변

1

나는 당신이 좋아하는 무언가를가는 링크에 대한 상대 경로를 사용하는 확신 :

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

내가 링크가 절대가되도록 대신 CI의 BASE_URL를 사용하는 것이 좋습니다 것입니다 :

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

base_url이 구성 파일에 설정되어 있습니다. 그것이 어떻게되는지 알려주세요!

+0

분명히 작동하고 base_url은 다른 디렉토리 구조로 이동할 때 코드를 변경하지 않아도되므로 분명히 체크 표시가되어 있지만 처음부터 문제의 원인을 정확히 이해하지 못합니다. – Goose

1

내 생각 엔 당신의 연결은 다음과 같이 보입니다하고 있다는 것입니다 때문입니다 얻을의

href="progress/01-04-15" 

은 바람직 BASE_URL 또는 current_url에서 함께 추가, 절대 경로를 사용하여 연결을 시도 현재 URL에 추가 codeigniter + 진행/날짜.

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

그런 식으로 현재 URL에 추가하는 대신 올바른 링크로 연결됩니다.