vuejs 를 사용시 vue-router 를 사용하여, 경로를 지정할 수 있다.
그러면 about / price / 등 필요한 페이지를 분리할 수 있어 작업하기 편하다.
그런데, SPA 웹페이지이기 때문에 index.html 내에서 처리가 된다.

즉, 해당 경로로 직접 들어가면 404 페이지가 표시된다.
그렇다면 404 페이지를 모두 index.html 으로 보내면 된다. ( 참조 : https://router.vuejs.org/kr/guide/essentials/history-mode.html )

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

아파치 apache 설정시 다음과 같은 에러가 발생할 수 있다.

RewriteBase: only valid in per-directory config files
Action 'configtest' failed.
The Apache error log may have more information.

그런경우는 해당 설정이 <Directory > </Directory> 설정내에 넣어준다.

<Directory {{vue앱-디렉토리패스}}>

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

</Directory>

이런식으로 넣어준다. vue 앱과 서버측 (node / go / php 등) 어플과 조합을 해서 사용가능하다.

php 같은 경우 laravel 등의 프레임웍(modern php)을 써도 되고, 그냥 날코딩(legacy php)으로 만들어서 조합해도 상관없다.

{{vue-app-path}}/api/[php app file].php

형태로 php 어플을 실행해도 된다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
어! 저런 것이 가능하군.
http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=63126

.php 만 실행되어야 하는데, .php.en, .php.1, .php.2  등이 실행이 되버리면 어쩌란 말인가?

상식적으로 저게 되는 이유를 모르겠다.
버그가 아니라도, 저런 위험성을 내포하고 있다는 것은 꽤 큰 보안이슈임에 틀림없다.

정확하지는 않지만, apache 의 php , perl, python 등 Server Side Script 를 처리하는 방법의 문제가 아닐까 생각이 든다. 외국 사례를 찾아보다 보니 꽤 오래전에 언급이 되었나보다.
http://seclists.org/vulnwatch/2006/q3/0002.html

근데, 저 이슈가 왜 잠잠(?)했었지?
다들 별로 대수롭지 않게 생각했나?

옵션으로 처리가능한지 모르겠지만, 우분투, Centos 등의 기본설정으로도 저게 가능하다면 문제가 좀 심각해 보인다.
오래전부터 가능했던 문제인듯 싶은데, 검색능력이 딸려서 어떻게 해결되었는지 모르겠다.
apache 쪽에 분명 관련 내용이 있을 법 한데. 못찾겠다.
직접 문의를 해볼까?


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,