2009-12-21 1 views
2

는 예를 들면 다음과 같습니다.htaccess없이 웹 사이트 탐색을 개발하기위한 대안은 무엇입니까? 그냥 이론

somedomain.com/layer1/layer2/action 

:

http://stackoverflow.com/questions/ask 

일반적으로이 htaccess로와 ModRewrite 엔진으로 수행되는 거의 모든 현대적인 웹 사이트는이 방식으로 작동합니다. 얼마 전에 PHP에서 나온 내용을 설명하는 기사를 보았습니다. 나는 그 이름을 더 이상 기억하지 않는다. 이 PHP 코드는 현재 열려있는 URL을 알고있었습니다. 어떤 도메인이 호출되었는지, 어떤 TLD가 호출되었는지, 첫 번째 디렉토리는 무엇인지, 두 번째 디렉토리는 무엇인지, 호출 된 파일은 무엇인지 등을 알 수있었습니다.

Kohana Framework는이 기술을 사용하지만 잘 모릅니다 어디에서 봐야하는지. 이것에 익숙한 사람?

답변

3

의미하는 것은 PATH_INFO 환경 변수를 사용한다는 것입니다. 예 : 대부분의 경우 htaccess로의 표면 아래에 무슨 일이 일어나고 무엇

www.domain.com/filename.php/questions/ask/ 
+0

흥미 롭습니다. 아, 그래, 지금 내 옛날 Kohana 시절부터,이 www.domain.com/filename.php/ 문제에 대한 .htaccess를 다시 작성해야한다는 것을 기억합니다. 다음 질문이 될 것입니다 :-) – openfrog

+0

음 ... mod_rewrite를 사용하지 않고 생성 한 문제를 해결하기 위해 mod_rewrite를 사용하고 싶습니까? 아니면 내가 한 말을 오해 했나요? –

+0

예, 종류;) ... 잘 프로그래밍 방식으로 처리하는 것이 좋습니다. 탐색 레이어를 만들 수있는 프레임 워크를 상상해보십시오. 그게 내가하려고하는거야. PHP에서 .htaccess를 사용하는 것보다 효과적이라고 생각합니다. PHP가 .htaccess를 읽고 쓸 수 있는지조차 알지 못한다.물론 PHP로 할 생각은 있지만 솔루션 일 수도 있습니다. – openfrog

3

당신이있어 무엇 : htaccess로 설정에 액세스하지 않고 here

, 당신은 그러나 항상이 방법으로 경로에 하나 filename.php이있을 것이다 찾고. 대부분의 경우 .htaccess 파일은 작업을 index.php 파일에 위임합니다.이 파일 자체는 컨트롤러, 메서드 및 매개 변수를 나타내는 값을 처리 할 준비가되어 있습니다.

URL을 파싱하고 거기에서 값을 처리하기 위해 자신의 .php 파일을 단순히 만들 수없는 이유가 없습니다. 당신은 단순히하지만 모든 URL에 기본으로 그 .PHP 파일을 사용해야합니다 :

www.mysite.com/index.php/controller/method/parameter1/parameter2 
1

당신은 아파치의 에러 문서와 함께 플레이 할 수 있지만 그냥 해킹과 깨끗하지 (뿐만 아니라 재 작성 등) 해결책.

+0

특정 문자를 사용하려면 .htaccess 파일'ErrorDocument 404/index.php'를 작성하십시오 (문서 루트에 있다고 가정). 이렇게하면 404 개의 모든 오류가 index.php로 리디렉션됩니다. – Boldewyn

+0

-1은 무엇입니까? 나는 똑같은 anser를주고 싶었다! – Boldewyn

+0

나는 -1이 아니지만 오류 상태 404를 모든 사용자에게 반환한다는 의미는 아닙니다. 그게 나쁜 생각 아닌가요? –

1

HTTP 헤더 조합을 사용할 수는 있지만 일부 웹 서버에서는 신뢰할 수 없습니다. HTTP 헤더는 서버에서 사용할 수있는 보려면, 그냥이있는 페이지를 만들 :

<?php phpinfo(); ?> 

는 PHP 변수 섹션을 찾아, 특히 이러한 잠재적으로 사용할 수있는 사람은 다음과 같습니다

_SERVER["HTTP_HOST"] 
_SERVER["SCRIPT_NAME"] 
1

Front controller pattern을 살펴보십시오.

기본적으로 URL을 디코딩하고 다음 작업을 결정하는 단일 PHP 파일로 모든 요청을 리디렉션합니다.

이것은 PHP 관련 btw가 아닙니다.

관련 문제