2010-12-24 2 views
2

나는 PHP를 사용하여 깨끗한 URL을 어떻게 만들 수 있는지 궁금합니다. PHP에서이 모든 작업을 수행합니까? 아니면 mod_rewrite를 어떤 방식으로 사용해야합니까? 누군가 laymans 용어로 나에게 이것을 설명 할 수 있습니까?PHP - URL에 페이지 제목을 추가하는 방법 그리고 PHP를 사용하여 깨끗한 URL을 만드는 방법

여기 내 현재의 URL은 요소 링크이며 브라우저

http://www.example.com/members/1/posts/page.php?aid=123 

에서 어떻게 보이는지 그러나 나는 페이지 제목을 읽고 싶어.

http://www.example.com/members/1/posts/title-of-current-page/ 
+1

당신이 사용하고 있습니까 단지 PHP 또는 프레임 워크의 일종도? 이러한 URL은 프레임 워크에서 나온 것처럼 보입니다. – zsalzbank

+0

@codethis, 아니 프레임 워크 그냥 PHP로 – HELP

답변

1

먼저이 기능의 예를 사용하여, PHP에서 "타이틀의 전류 페이지"를 생성해야합니다

function google($string){ 
    $string = strtolower($string); 
    $string = preg_replace('/[^a-zA-Z0-9]/i','-',$string); 
    $string = preg_replace("/(-){2,}/",'$1',$string); 
    return $string; 
} 

이 두 번째 것은, 당신이 재 작성을해야,하지만 당신은 유지해야 "/ 123 타이틀의 전류 페이지"의 형태로 지원 같은 것을 (나는 당신의 전체 URL을 무시하고)

RewriteRule ^([0-9]+)-(.*?)$ page.php?aid=$1 [L,QSA] 
+0

당신의 원조와 일치하는 db를 가지고 코드를 #, 당신은 URL 문자열에 번호를 유지할 필요가 없습니다. 그냥 쿼리 조회를 수행하는 함수를 작성하십시오. 그렇게 깨끗한 URL. – TH1981

+1

물론 두 개의 동일한 이름이있을 때 문제가 발생합니다. id = 123 LIMIT 1이 훨씬 빠르고 안정적이라고 생각합니다. 제목이 바뀌면 Google에서 사용자가 공백 페이지를 얻습니다. ID는 다음과 같습니다. 항상 같은. 나는 두 가지 방법을 사용하지 않는다. –

0
을 갈 것

재 작성

재 작성을 사용하여 모든 요청을 기존 PHP 파일로 보내야합니다. 그렇지 않으면 단순히 페이지가 없기 때문에 모든 404 not found 오류가 발생합니다. 모든 요청을 처리하기 위해 404 페이지를 다시 작성하고 당신은 확실히 거기에 가고 싶어하지는 않는

은 ...

+0

그래서 정확히 어떤 경로를 사용하여 깨끗한 URL을 만들어야합니까? – HELP

1

이 사용 mod_rewrite를 수행 할 수 있습니다

당신은 파일을 편집해야합니다 귀하의 웹 폴더의 최상위 레벨에서 .htaccess를 호출했습니다. 여기에서 특정 설정을 지정하여 Apache가이 폴더와 그 아래의 항목에 액세스하는 방식을 제어 할 수 있습니다.

첫 번째 사항부터 더 후, RewriteEngine On

RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L] 

규칙이/뒤에 소문자로 형성되어있는 URL과 일치 소문자 및/또는 하이픈을 끝까지 .PHP 추가 :의 mod_rewrite를 켜 보자. 괄호()로 묶인 내용을 추적하고 $ 1 및 $ 2, 즉 첫 번째 및 두 번째 일치를 나중에 참조합니다. 누군가가이 URL을 방문 할 경우 그래서 :

http://example.com/weblog/archive

를 다음으로 변환됩니다 :

http://example.com/weblog/archive.php

당신에 대한 자세한 정보를 찾을 수

:

http://wettone.com/code/clean-urls

관련 문제