반응형
Larabel 및 Wordpress가 동일한 서버/도메인 상에 있음
저는 Larabel(5.1) 프로젝트 내에서 WordPress 사이트를 호스팅하려고 합니다.다음과 같은 구조를 가지고 있습니다(일부 제거).
├── app
├── config
├── public
│ ├── index.php
│ ├── wordpress -> ../wordpress
│ └── .htaccess
├── resources
├── storage
├── vendor
└── wordpress
├── index.php
├── wp-admin
├── wp-config.php
├── wp-includes
└── .htaccess
vhost 문서 루트가 공용입니다.
워드프레스는 .htaccess를 통과하는 모든 것을 포착해야 합니다.단, /login은 larabel로 이동합니다.프로젝트가 성장하면 라라벨에 대한 요청을 잡기 위해 규칙을 추가할 예정입니다./public에는 다음 .htaccess 파일이 있습니다.
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^/login" "index.php" [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule "^(.*)$" "wordpress/$1" [L]
</IfModule>
하지만 /login에 요청을 하면 wordpress 페이지가 나타납니다.로그의 일부를 다음에 나타냅니다.
add path info postfix: /var/www/public/login -> /var/www/public/login/
strip per-dir prefix: /var/www/public/login/ -> login/
applying pattern '^/login' to uri 'login/'
add path info postfix: /var/www/public/login -> /var/www/public/login/
strip per-dir prefix: /var/www/public/login/ -> login/
applying pattern '^(.*)$' to uri 'login/'
RewriteCond: input='/var/www/public/login' pattern='!-d' => matched
RewriteCond: input='/var/www/public/login' pattern='!-f' => matched
rewrite 'login/' -> 'wordpress/login/'
add per-dir prefix: wordpress/login/ -> /var/www/public/wordpress/login/
strip document_root prefix: /var/www/public/wordpress/login/ -> /wordpress/login/
internal redirect with /wordpress/login/ [INTERNAL REDIRECT]
[L] 플래그에서 개서가 멈추지 않는 것 같습니다.
Server Fault에서도 같은 질문을 하게 되었습니다.자, 정답을 찾았어요여기에 링크하여 차이점:
https://serverfault.com/questions/739728/laravel-and-wordpress-on-same-server-domain
코멘트에 기재되어 있는 바와 같이, 다음과 같은 회답이 있습니다.
로그에서 알 수 있듯이 첫 번째 조건은 일치하지 않습니다.
applying pattern '^/login' to uri 'login/'
login/
로부터 시작하지 않다/
그래서 규칙을 바꿔서
RewriteRule "^login/" "index.php" [L]
기본 Larabel에 다시 쓰기 조건을 추가할 수 있습니다..htaccess
Larabel은 서브 디렉토리( /wordpress )에 대한 모든 요청을 무시합니다.
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Ignore Wordpress directory
RewriteCond $1 !^(wordpress)
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
언급URL : https://stackoverflow.com/questions/33939580/laravel-and-wordpress-on-same-server-domain
반응형
'programing' 카테고리의 다른 글
알 수 없는 구조로 JSON을 디코딩합니다. (0) | 2023.04.01 |
---|---|
Windows Server 2016에서 WordPress에 디렉터리 wp-content를 만들 수 없습니다. (0) | 2023.04.01 |
toString()을 구현할 때 reflection을 사용하는 것이 의미가 있습니까? (0) | 2023.04.01 |
Spring Boot application.properties를 프로그래밍 방식으로 덮어쓰려면 어떻게 해야 합니까? (0) | 2023.04.01 |
Spring MVC 컨트롤러 메서드에서 GET HTTP 요청의 파라미터 값을 취득하려면 어떻게 해야 합니까? (0) | 2023.04.01 |