2014-07-25 4 views
3

최근에 Laravel을 배우기 시작했는데 왜 발생하는지 모르는 문제가 있습니다. 현재 Laravel 프로젝트는 wamp/www/codebright에 있습니다. localhost/codebright/public에 액세스하면 Laravel의 환영 페이지가 표시됩니다.Laravel 기본 경로 반환 404

나는 간단한 라우팅 만들 때 :

Route::get('my/page', function() 
{ 
    return "Harro world"; 
}); 

과 노력 액세스 : localhost/codebright/public/my/page 그것조차 Laravel 오류로, 404 오류로 반환합니다. 또한 localhost/codebright/my/page에 액세스하려고했습니다.

그러나 CMD php artisan serve을 입력하고 8000 포트의 서버를 열고 다음 액세스 : localhost:8000/my/page 잘 작동합니다. artisan 명령을 사용하지 않은 첫 번째 방법이 작동하지 않는 이유를 알고 싶습니다.

미리 감사드립니다. 당신이 XAMPP는 위 응답 코멘트 섹션에서 언급 한 문제 중 어느 것도 발생되지 않으며, 설치되어있는 경우

참고

그것은 그렇게 보인다. 기본적으로 XAMPP를 사용하는 경우 오류가 발생하지 않으며 프로그램이 정상적으로 작동합니다.

답변

3

실제로 원하는 작업을 수행 할 수 있지만 artisan serve을 사용하지 않으면 웹 서버를 올바르게 설정해야합니다.

  • 당신은 장소
  • 기지에 .htaccess 파일이없는 : 당신의 원래의 게시물에서 당신은 분명히 당신이 시작 페이지를 얻을으로 웹 서버가 설정되어 있지만 다음 중 하나처럼 나에게 보인다 웹 서버 설정에 대한 가상 호스트 (또는 아파치 설정 가상 호스트를 사용하지 않는 경우)는
  • 당신은 mod_rewrite

당신은 확인해야합니다에 설정이없는 (.htaccess 파일이 작동 할 수 있도록 요구되는) AllowOverride All을하지 않습니다 일 ese out. 최소한 Laravel은 실제 파일 (my/page)로 존재하지 않는 URI를 페이지를 가짜로 만들 수있는 방법을 필요로합니다. 이것은 거의 규칙을 지정하기 위해 mod_rewrite.htaccess 파일을 사용해야합니다. 아파치와 artisan serve 사용의 차이


설명 : 대신 아파치와 같은 '바보'웹 서버를 사용하지 않는 artisan serve을하고는 '존재하지 않는'URI를 처리하는 방법에 대한 지식을 가지고 PHP에 내장 된 웹 서버를 사용하는 당신이 찾아 본 이유는 당신이 mod_rewrite.htaccess 파일을 필요로하지 않는 이유입니다.

+0

그래, 그게 문제를 설명해. 어떠한 제안? 무엇을 사용해야합니까? 'php artisan serve' 또는 내'public' 폴더에 직접 액세스하십시오. 내 웹 응용 프로그램이 마침내있을 호스트를 참조하십시오. 내 호스트 회사에 저장되어있을 때 내 웹 사이트에서'php artisan serve'를 실행할 수 없기 때문에'public'에 액세스해야합니다. 디렉토리 맞지? 작동하도록 파일을 수정하려면 어떻게합니까? – kfirba

+0

대다수의 호스팅 제공 업체는 가상 호스트에 대해'mod_rewrite'를 * 및 * AllowOverride All로 설치하여'.htaccess' 파일을 사용할 수있게합니다. 필자가 지적한 바는 이것이 PHP 어플리케이션 전체에 공통적 인 요구 사항이라는 것입니다 (Laravel은 특별한 방법이 아니며 이러한 요구 사항이 미친 것은 아닙니다). 모두 지원합니다. 그리고 새로운 호스트가 필요하다면 . – alexrussell

+0

로컬로 아파치 환경을 올바르게 설정하는 것이 좋겠지 만, 원하는 것을 할 수는 있습니다. (사이트에서 작업 할 때마다 서브 작업을하지 않아도됩니다.) - sudo a2enmod rewrite'을 명령 행에서 실행 한 다음 아파치 설정에서'AllowOverride All'이 설정되어 있는지 확인하십시오. – alexrussell

0

laravel 프로젝트에 대한 가상 호스트를 만들었습니까?

여기에 어떤 창

1 단계에서 가상 호스트를 만드는 방법 인 경우 : 오픈 아파치의 conf 파일

apache\conf\extra\httpd-vhosts.conf 

마지막 줄의 코드 아래에 추가합니다.

<VirtualHost *:80> 
    ServerName www.mark-thomas.loc 
    DocumentRoot E:\wamp\www\codebright\public 
    SetEnv APPLICATION_ENV "development" 
    <Directory E:\wamp\www\codebright\public> 
     DirectoryIndex index.php 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

귀하의 laravel 앱 경로는 폴더 경로로 바꿀 수 있습니다.

2 단계 : 림 -> 윈도우 \ system32를 \ 드라이버 \ 등 \ 호스트

는 IP 주소

192.168.1.231의 www.laravel.loc

다시 시작의 목록에서 IP 주소를 추가 귀하의 아파치 서버가 http://www.laravel.loc/my/page을 누르십시오. 이제 당신의 메시지를 볼 수 있습니다!

+0

안녕하세요! 당신의 솔루션과'php artisan serve'의 차이점은 무엇입니까? 그들은 둘 다 내가 할 수있는 웹 서버를 만든다. 당신은'http : // www.laravel.loc'과 다른'localhost : 8000'을 만듭니다. 나는 가상 호스트를 설정하고'localhost : 8000/my/page'를 입력하는 대신'localhost/codebright/public/my/page'를 입력 할 수 있도록'public' 디렉토리에서 작동하게 할 수 있는지 묻는 것입니다. 감사! – kfirba