2012-07-05 4 views
1

현재 Codeigniter를 사용하여 웹 응용 프로그램을 구축 중입니다. 그들의 설명서가 쿼리 문자열보다 세그먼트 URL을 선호한다는 것을 알게되었습니다.이 URL은 읽기 쉽고 멋지게 보이기 때문에 의미가 있습니다.대체 쿼리 문자열 형식

일반적으로 쿼리는 다음과 같이 보일 것이다 : 나는 또한 그들의 쿼리를 포맷하는 방법을 다른 일 threadless.com을 찾아보고 정말 좋아했다

http://www.threadless.com/catalog/index.php?type=guys&view=25&size=3xl 

그러나 나사없는이 형식을 사용합니다

http://www.threadless.com/catalog/type,guys/view,25/size,3xl 

어떻게 그 형식을 얻을 수 있습니까? .htaccess가 관련되어 있습니까? 해당 형식이 Codeigniter와 잘 어울리거나 사용자 정의 함수를 포함합니까?

감사합니다. 아파치를 사용하는 경우의 .htaccess에서 그것은 mod_rewrite를의

답변

3

당신이 할 수있는 당신은 비슷한 일을 할 수 있습니다.

http://www.threadless.com/catalog/type/guys/view/25/size/3x1 

이렇게하려면, 당신은 같은 컨트롤러 기능 거라고 : 출력 뭔가 싶습니다

class Catalog extends CI_Controller { 
    function catalog() 
    { 
     $params = $this->uri->uri_to_assoc(3); 
    } 
} 

: 당신이 쉼표를 원하는 경우

Array 
(
    [type] => 'guys' 
    [view] => 25 
    [size] => '3x1' 
) 

, 당신이 원하는 것을 .htaccess를 터치하여 모든 "," "/"로 다시 쓸 수 있습니다.

RewriteCond %{REQUEST_URI} ^([^\,]*)\,(.*)$ 
RewriteRule .* %1/%2 [R=301,L] 
+0

의 기본 라우팅 시스템을 고수하는 것이 좋습니다 ... 멋졌습니다! 무리 감사! – coryetzkorn

+0

URL을 브라우저에 표시하지 않고 다시 작성하는 방법이 있는지 알고 계십니까? 지금은 쉼표를 슬래시로 변환하지만 쉼표가 URL에 그대로 있으면서도 여전히 슬래시로 사용할 수 있다면 멋질 것입니다. – coryetzkorn

+0

'R = 301'을 고쳐야한다고 생각합니다. –

0

, 다음은 htaccess로, .htdocs, 또는 httpd.conf 파일 중 하나를 포함하는 것 (여러 가지 방법이 있습니다). 핵심은 "catalog"라는 파일이 .php 파일로 구문 분석되도록 설정하는 것입니다. 그런 다음 파일 이름 (/type,guys/view,25/size,3xl) 다음의 모든 내용을 $_SERVER['PATH_INFO']으로 스크립트에 전달합니다.이 구문은 자신을 구문 분석합니다.

CodeIgniter가 정확하게 작동하는 방식이나이 작업을 수행하는 기능이 다른지 확실하지 않습니다.