나는 PHP symfony 프레임 워크가 그렇게 할 수 있음을 알고 있습니다.
가 작동합니까 방법이 프론트 컨트롤러에서
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
(이것은 "프론트 컨트롤러"라고 심포니에서), 아파치 설정에서 를 단일 진입 점에 들어오는 모든 resquest을 리디렉션 mod_rewrite를 사용하면 URL에서 제공하는 모든 정보를 보유하는 "요청"객체를 만들 것입니다.
예를 들어, 당신은 말할 수 그 후 우선은 "/"PHP 파일의 이름을 불러와 모든 다른이되도록 매개 변수와 값입니다입니다 : http://example.com/file/id/2이 ID = 2
와 file.php 호출
이렇게하려면 그냥 reg exp를 사용하고 "Request"클래스를 신중하게 디자인하십시오. 위의 예에서 "요청"클래스는 getRequestedAction() 및 getParameter (문자열 매개 변수) 메소드를 모두 제공해야합니다. getRequestedAction() 메소드는 올바른 파일/조치/메소드를 호출하기 위해 "요청"오브젝트가 완전히 채워질 때 사용됩니다. http://example.com/file/id/2가 http://example.com/file?id=2 과 동일 (모두 : 당신이 등록 된 URL을 특급과 _GET 배열의 구문 분석 모두 요청 개체의 매개 변수 배열을 채우는 선택하면 어디
, 당신은 지점에 도착 할 수있다 작동 가능)
확장 프로그램을 무시하도록 선택할 수 있습니다 (http://example.com/file.html은 http://example.com/file과 동일).
마지막으로 일부 URL의 경우 마지막 '/'다음에 오는 모든 것을 무시할 수 있습니다. 따라서 : 은 http://example.com/question/3/is-linux-better-than-windows과 같습니다.
다른 file.php에서 _GET 또는 _POST를 사용하는 대신 "request"> getParameter ('id')를 사용하여 'id'매개 변수의 값을 가져옵니다. 배열.
요점 사이트를 실행하는 데 필요한 모든 정보를 포함하는 "요청"객체를 생성,
- 리디렉션 하나의 "프론트 컨트롤러"해당 파일에서
- 로 들어오는 모든 트래픽입니다
, 액션 내부
- 객체
- 전화 올바른 행동이 "요청"에 포함 된 정보를 기반으로 (PHP 파일)가 URL에 포함 된 매개 변수를 가져 오기 위해이 요청 객체를 사용
도움이 되었습니까?
누구든지이 예제를 가지고 있습니까? 이 유형의 구성을 구현하고 싶지만 코드가 실제로 "file.php"파일에서 어떻게 보이는지에 대해서는 약간의 상실감이 있습니다. –