.htaccess에서 Laravel과 html 파일을 공존시키고 쉽게 부분 시스템화하는 방법
Laravel과 정적 파일의 공존에 대한 간결한 기사가 없었기 때문에 묶어 둡니다.
index.php를 괴롭히지 않아도
.htaccess를 조금 수정하면 쉽게 부분 시스템화할 수 있어요!
예)
■ 도메인
http://example.com/
■ 서버의 폴더 구성(직하)
· index.html
· laravel 폴더
■상황
'
http://example.com/
'를 방문하면 index.html이 표시되는 사이트에"laravel"이라는 Laravel 프로젝트 폴더를 올린 상태입니다.
추가하는 시스템 부분의 URL은, 「/test」를 추가한 「
http://example.com/test
」하고 싶습니다.
덧붙여서, 이 상태에서 「
http://example.com/test
」를 두드려도, 당연히 에러입니다.■ 솔루션
다음과 같은 .htaccess를 도메인 바로 아래에 배치합니다.
↓코피페용
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /laravel/public/index.php [L]
</IfModule>
RewriteRule에 "^/프로젝트명/public/index.php[L]"를 기재해 주세요.
(index.php에 패스를 통하는 의미나, .htaccess의 기술 설명은 여기에서는 생략합니다.모르는 분은 나중에 구구 해 보세요.)
이제 "
http://example.com/test
"를 두드리면 Laravel에서 처리되고,"
http://example.com/
"일 때는 그대로 index.html이 표시됩니다.그리고는 Laravel측의 처리를 써 가면, 정적 HP의 부분 시스템화 완료입니다!
그건 그렇고, Laravel 계층 구조가 바뀌면 asset ()이 정상적으로 작동하지 않습니다.
asset() 을 사용하면 도메인 바로 아래를 보러 가므로 다음과 같은 방법으로 해결할 수 있습니다.
①public하에 두고 있던 CSS나 JS를 폴더마다 「
http://example.com/
」직하로 이동한다② 파일의 경로 앞에 「
/laravel/public/
」를 추가해 지정한다.예)
src="/css/example.css"
→ src="/laravel/public/css/example.css"
③vendor 안을 개수하러 간다.개인적으로는 ②의 방법으로 해결이 가장 빠르고, 또한 혼란도 적을까 생각합니다.
이상, 「.htaccess로 Laravel과 html 파일을 공존시켜, 간단하게 부분 시스템화하는 방법」이었습니다.
Reference
이 문제에 관하여(.htaccess에서 Laravel과 html 파일을 공존시키고 쉽게 부분 시스템화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/4_R_R_S/items/fe86118d30ca5b15cd99텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)