2012-09-19 4 views
-4

Stackoverflow에는 기본적으로 4-6 가지의 서로 다른 URL이 있음을 발견했습니다. 하나는 http://stackoverflow.com/questions/6831217/double-vs-decimal-in-mysql과 같은 질문입니다. 하나는 사용자 프로필 페이지 (예 : http://stackoverflow.com/users/1469954/cupidvogel) 용입니다. 하나는 새로운 질문입니다 (예 : http://stackoverflow.com/questions/ask).서버에서 differen 페이지를 보내는 방법

각 페이지 요청마다 서버는 필요에 따라 페이지를 보냅니다. 이제 어떻게하면 서버 측에서이 작업을 수행 할 수 있습니까? 클라이언트가 묻는 페이지 유형을 기록하기 위해 URL을 구문 분석하는 하나의 포괄적 인 PHP 스크립트가 있어야합니다 (예를 들어, URL을 구문 분석하고 클라이언트가 주제 페이지를 요청할 경우, URL에서 ID/텍스트를 질문하고, 관련 데이터를 가져오고, HTTML을 작성하여 보내려면 DB를 쿼리하고) 적절하게 보내거나, 각 페이지 유형에 대해 별도의 스크립트가 있어야합니까? 그리고 어느 쪽을 위해서, PHP/Apache를 어떻게 설정해야합니까?

foo.php과 같은 페이지가있는 경우 http://localhost/foo.php을 통해 확인할 수 있습니다. 하지만 http://localhost/foo.phphttp://localhost/foo.php/ask/questions 등을 캡처하려면 무엇을해야합니까?

+1

http://www.htaccess-guide.com/에서보십시오 –

+1

이것은 읽을 수 없습니다. – Sherlock

답변

1

mod_rewrite을 참조하십시오. 이 작업은 .htaccess 파일이나 다른 Apache conf 파일에있을 수있는 다시 쓰기 규칙을 사용하여 수행 할 수 있습니다. 예를 들어 :

RewriteRule users/(\d+)/(\w+) user.php?id=$1&uname=$2

이 user.php에 사용자/1469954/cupidvogel 변환 할 ID = 1469954 & 끝나면 uname = cupidvogel을?. 나는 좋은 것을 알고 있다면 튜토리얼을 가르쳐 주겠다. (편집 : this one 괜찮은 것 같습니다.)

+0

예, Mod_Rewrite에 대해서도 생각하고있었습니다. 두 가지 질문, 패턴이 사전 설정된 패턴 목록과 일치하지 않으면 홈페이지로 리디렉션하는 방법 (예 : 사용자가 임의의 URL (예 : http://stackoverflow.com/foo/)을 입력하는 방법) users/topics/12345', 분명히이 패턴은 Mod_Rewrite의 사전 정의 된 패턴 목록에 존재하지 않으므로 어떻게 리디렉션합니까? – SexyBeast

+1

나는 모든 것을 일치시키는 모든 패턴의 끝에 패턴을 넣을 수 있으며, index.php 나 더 나은 오류 페이지를 가리킬 수 있다고 생각한다. 그런 다음 다른 패턴도 기본 페이지로 보내지 않게하려면 다른 규칙의 끝 부분에'[L]'(마지막) 옵션을 추가하십시오. 그러면 해당 규칙이 더 일치 할 경우 더 이상 규칙을 처리하지 않습니다. – undefined

+0

그것은 유망 해 보입니다. 감사. – SexyBeast

관련 문제