2017-12-25 34 views
0

: 나는 경로 대신에 대한 전체 경로를 지정하지 않는PHP 라우팅 URL 라우팅 nikic/빠른 경로 PHP 패키지와

PHP의 URL 라우팅이 작동하지 않습니다 경로의 이름 만 :

예를 들어, /hello-world에 대한 경로를 생성하기 위해, 나는 전체 경로를 지정해야합니다 : localhost/myProject/public/index.php/hello-world

$r->addRoute('GET', '/localhost/myProject/public/index.php/hello-world', function() { 
     echo 'Hello World'; 
    }); 

에서 수행해야 할 일이 있습니다. htaccess 파일? 내가 GitHub의에 프레임 워크하지만 패트릭 Louys '아니오 프레임 워크 튜토리얼 사용하지 않는

: 현재 프로젝트에 대한

구체적인 나는 웹 서버로 페도라 리눅스 XAMPP를 사용하고 https://github.com/PatrickLouys/no-framework-tutorial

웹 서버가/opt/lampp에있는 동안 내 코드는 내/home 디렉토리에 있습니다 ... 심볼 링크로 연결했습니다 : sudo ln -s /home/... /opt/lampp/htdocs (중요하다면 ...)이 튜토리얼은 PHP에 의존하고 있습니다. 내장 서버 (php -S localhost:8000)

,210

답변

0

내 빠른 수정 :

1- 공공 디렉토리에 .htaccess 파일을 만듭니다. 모든 요청은 index.php

으로 전달됩니다. 2 적절한 URI를 검색하기 위해 제출 된 전체 URL을 구문 분석하는 함수를 추가하십시오.기본적으로이 함수는 localhost/public/index.php/hello-world과 같은 전체 URL을 트림하고 /hello-world을 반환합니다. 이러한 URL을 웹 서버에 의해 수신 될 때 /hello-world 금식 라우팅 라우터 등록 경로, 해당 제어기가 호출된다되고

소스 (설명과 코드 예) http://blogs.shephertz.com/2014/05/21/how-to-implement-url-routing-in-php/

0

아마 잘못, 대신 /helloworld 당신은 ./helloworld

0

당신은이 경로 다음 htdocs에 폴더 안에 코드 (파일)를 삽입해야합니다 작성해야합니다 :

/opt/lampp/htdocs/ 

그런 다음 폴더 이름을 만들 안녕하세요 세계 ,

/opt/lampp/htdocs/hello-world 

다음 터미널 및 루트 사용자와 같은 액세스를 열 안녕하세요 세계로 디렉토리를 변경 한 후 당신은 당을주고있다 :이 폴더는 이런 식으로 폴더 htdocs에 안에 있어야 이 같은 폴더에 미션은 :

chmod 667 hello-world -R 

-R은 폴더 안녕하세요 - 세계와 그 안에있는 모든 파일에 permision을 제공하는 데 사용됩니다. 그리고 그게 다야! 이제 localhost/hello-world를 시도하면 프로젝트가 작동하는 것을 볼 수 있습니다!

참고 :이 방법으로 문제가 해결되지 않으면 test.php라는 파일을/opt/lampp/htdocs/경로 다음의 htdocs 폴더에 만들어보십시오.

<h1><b><?php echo "hello wordl!"; ?></b></h1> 

가 다시이 파일에게 permision (chmod를 667)를 제공해야합니다 : 그 파일이 내부에 있어야합니다. 그런 다음이를 복사하여 브라우저 탐색 표시 줄에 붙여 넣습니다 : 당신은 굵은 스타일로 브라우저에서 큰 안녕하세요 세계를 볼 수 있어야합니다

localhost/test.php 

.