문제

나는 인터넷상의 많은 블로그에서 이에 대해 언급한 것을 보았지만 여기서는 이에 대해 논의해야 한다고 믿습니다.PHP에 MVC 프레임워크(ZEND에 관심이 있음)가 있지만 호스트가 mod_rewrite를 제공하지 않는 경우 어떻게 해야 합니까?"단축키"가 있나요?어떤 방식으로든 제어권을 이전할 수 있습니까(페이지 간에 매핑이 발생할 수 있도록)?어떤 아이디어가 있나요?감사합니다 :-)

도움이 되었습니까?

해결책

Zend 프레임워크는 다음 없이 작동해야 합니다. mod_rewrite.URL을 "/path/to/app/index.php/controller/action"과 비슷하게 유지할 수 있다면.mod_rewrite가 있다면 "index.php" 비트를 없앨 수 있지만 그것도 작동할 것입니다.

index.php 부분을 받아들이도록 경로를 설정하는 것은 모두 문제입니다.

다른 팁

알았어 내 평결 :-) :나는 mod_rewrite 없이 zend를 성공적으로 사용했으며 모두 site/index.php/controller/action에서 말한 대로입니다.나는 이 글을 게시하기 전에 그것을 알고 있었다.나는 또한 인터넷에서 404페이지를 index.php에 "푸시"하는 기술을 발견했습니다. 따라서 리소스가 아닌 것은 무엇입니까(예:CSS, 이미지 등)은 한 가지 예외를 제외하고 거기에 도달합니다.POST 값.그래서 다음번에 특정 서버에 응용 프로그램을 만들어야 할 때 mod_rewrite를 정중하게 요청해야 한다고 결정했습니다.관리자가 제공할 수 없는 경우 상사에게 문의하거나, 제가 원하는 경우 제공업체를 전환하세요.일반적으로 PHP 시장이 너무 단편화되어 있다는 것은 부끄러운 일입니다(php4, php5, php6, mod_rewrite, mod_auth, mod_whatever). 그러나 이것은 또 다른 이야기입니다...

mod_rewrite는 오늘날의 호스팅 환경에서 거의 필수적입니다. 그러나 불행하게도 모든 사람이 메시지를 받은 것은 아닙니다.

많은 대형 PHP 프로그램(나는 magento를 생각하고 있지만 대부분은 대처할 수 있음)에는 mod_rewrite를 사용할 수 없는 경우를 위한 예쁜 URL 대체 모드가 있습니다.

URL은 www.site.com/index.php?load-this-page와 같이 표시됩니다.

그들은 $_GET 변수에서 변수 이름을 가져와 실행할 모듈/기능에 대한 선택기로 사용하기 위해 몇 가지 마법을 실행해야 합니다.

관련 메모에서 나는 #을 사용하는 새로운 페이스북 사이트에서 엉망인 URL을 많이 보았습니다.따라서 링크는 www.new.facebook.com/home.php#/inbox/ 와 같습니다. 분명히 우리는 그것을 볼 의도는 아니지만 아마도 $_SERVER['REQUEST_URI'] 변수를 구문 분석하고 있음을 시사합니다.

모든 요청을 index.php(또는 초기화 스크립트가 있는 곳)로 리디렉션하는 mod_rewrite가 아닌 방법을 찾을 수 있는 경우 위에서 언급한 대로 'REQUEST_URI'를 사용하여 도메인 뒤의 주소 부분을 가져온 다음 구문 분석할 수 있습니다. 원하는 대로 요청하고 원하는 대로 수행하도록 하세요.이것이 Wordpress가 수행하는 방식입니다(mod_rewrite를 사용하여 부여됨).동일한 URI를 유지하면서 요청을 인덱스 페이지로 리디렉션할 수 있다면 요청을 처리하는 데 필요한 작업을 수행할 수 있습니다.

Drupal의 재작성 규칙은 번역됩니다.

http://example.com/path/goes/여기

~ 안으로

http://example.com/index.php?q=path/goes/여기

...생성할 URL의 종류를 결정하는 논리가 있습니다.보기 흉한 URL을 사용할 수 있다면 URL 재작성에 의존하지 않고도 단일 전면 컨트롤러의 모든 논리를 제자리에 유지할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top