최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

■ 백엔드 ■/Slim

public 폴더

serpiko 2018. 7. 2. 13:51



   public 폴더 외부의 프론트자원 연결 ( link, href ) 문제


nginx 의 경우 root /var/www/html/project/public/;


apache 의 경우 DocumentRoot "C:/xampp/htdocs/myslimsite/public"


로 public을 웹 root로 설정한 경우 public 폴더 외부의 프론트자원 접근이 불가능하다


assets

   js/

   css/

   images/

app

src

vendor

public/

   .htaccess

   index.php  => 여기서 assets에 접근 못한다.




   why?



I don't know about your specific scheme, but generally it's a good idea to have a "backend" folder outside the public document root, and only expose files which directly handle HTTP requests to the internet in the public document root. In any decent system you'll have database classes, template files, background workers/cron jobs etc.; those aren't meant to be accessed directly and hence must not be exposed publicly under any circumstances.

Typically you might have something like this:

public/
  js/
  css/
  imgs/
  .htaccess
  index.php
app/
  foo/
    bar.php
  baz/
  ...

The public folder only contains files that must be publicly accessible, like Javascript, CSS and image assets. Beyond that it only contains a small bootstrap index.php file which handles all requests and loads classes/routers/controllers as necessary, which further handle the request as appropriate. With a decently configured web server you don't even need that index file, but have the web server invoke appropriate backend scripts as necessary.

The smaller the publicly exposed surface the fewer problems you invite.

There should be no trace of any of that in the used URLs. A URL might be /users/profile, which is handled by index.php and resolved internally as necessary.



귀하의 특정 구성표에 대해서는 모르겠지만 일반적으로 공용 문서 루트 외부에 "백엔드"폴더가 있고 공개 문서 루트의 인터넷에 HTTP 요청을 직접 처리하는 파일 만 노출하는 것이 좋습니다. 어떤 알맞은 시스템에서도 데이터베이스 클래스, 템플릿 파일, 백그라운드 작업자 / cron 작업 등이 있습니다. 그것들은 직접적으로 접근 할 의도가 없으므로 어떤 상황에서도 공개적으로 노출되어서는 안됩니다.

일반적으로 다음과 같은 내용이있을 수 있습니다.

public/
  js/
  css/
  imgs/
  .htaccess
  index.php
app/
  foo/
    bar.php
  baz/
  ...

public폴더는 자바 스크립트, CSS 및 이미지 자산처럼 공개적으로 액세스 할 수 있어야합니다 파일이 포함되어 있습니다. 그 외에는 모든 요청을 처리하고 필요에 따라 클래스 / 라우터 / 컨트롤러를로드하는 작은 부트 스트랩 index.php 파일 만 포함합니다.이 파일은 요청을 적절하게 처리합니다. 적절하게 구성된 웹 서버를 사용하면 색인 파일이 필요하지 않지만 웹 서버에서 필요한 경우 적절한 백엔드 스크립트를 호출하게하십시오.

공개적으로 노출 된 표면이 작을수록 문제는 더 적습니다.

사용 된 URL에는 그 중 하나의 흔적이 없어야합니다. 필요에 따라 내부에서 /users/profile처리되고 index.php해결 되는 URL이있을 수 있습니다 .


https://stackoverflow.com/questions/47198536/access-folder-outside-public-html?rq=1

'■ 백엔드 ■ > Slim' 카테고리의 다른 글

Slim Framework 3 Skeleton Application  (0) 2018.06.25
Twig views  (0) 2018.05.24
Middleware  (0) 2018.05.24
Routes  (0) 2018.05.24
index.php  (0) 2018.05.24
댓글