티스토리 뷰
[Wordpress & WPML ] invalid URL path for scripts and styles "ontent" (잘못된 URL 경로 문제)
오늘도공대생 2022. 1. 5. 08:45This post is written in Korean. Please right-click to translate it into your language.
클라이언트 화면에서 WPML 템플릿에 대한 경로 문제로 404 Error가 발생됩니다.
GET http://domain.com/ontent/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-dropdown-click/script.min.js?ver=1 net::ERR_ABORTED 404 (Not Found)
GET http://domain.com/ontent/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-dropdown-click/style.min.css?ver=1 net::ERR_ABORTED 404 (Not Found)
이 에러의 경로를 살펴보면, http://domain.com/ontent/~로 "ontent"라는 잘못된 경로를 보여줍니다.
올바른 경로 -> http://domain.com/wp-content/~
이 오류는 Wordpress Website에서 WPML을 통해 다국어 웹사이트를 구성하였을 경우 발생되며,
서버를 Bitnami로 구성하였을 때 발생되는 것으로 보고되고 있습니다.
또한, 호스팅 서비스가 WordPress 호스팅 서비스를 구현하기 위해 ABSPATH를 하드코딩하는 경우에도 발생할 수 있습니다.
해당 오류를 겪는 사용자 수가 매우 적은 버그이기 때문에 온라인 검색을 통해 알아보기 힘듭니다. (2019년~)
아래는 이러한 에러를 겪는 사용자들과 해결 방법에 대한 일부 토론 내용입니다.
- [Closed] Language URL taking the wrong path for scripts
- [Resolved] WPML loads some stylesheets and scripts with wrong URL
- Language switcher settings: URL values in wp-options table with messed up path
- WPLML style sheet is getting truncated into ontent
제안된 유일한 해결 방법은 템플릿 파일(/sitepress-multilingual-cms/templates/language-switchers/legacy-list-vertical/style.css?ver=1)을 테마에 복사하고 거기에서 로드하는 것입니다.
이러한 방법을 통해 문제 없이 보여질 수 있습니다.
하지만, 문제가 해결된 것은 아닙니다.
동일한 파일을 올바른 경로로 한 번 더 불러올 뿐 여전히 잘못된 경로로 인해 404 에러는 표시됩니다.
시도 방법
1) wp-config.php를 통해 ABSPATH 수정
define('ABSPATH', '/opt/bitnami/wordpress' . '/');
일반적인 환경에서라면 이를통해 문제가 해결 될 수 있겠지만, 슬프게도 서버에 하드코딩된 경우 여전히 문제가 해결되지 않습니다.
여기까지가 알려진 모든 해결 방법입니다.
우리는 이 버그가 해결되길 원하지만 WPML에서는 수년째 방치되고 있습니다. 동일한 환경에서 타 플러그인들이 유사한 버그를 발생시키는지 확인해 보았지만 보고되고 있지는 않습니다.
2) .htacces 파일 수정
이 문제를 해결하기 위한 방법들을 생각해 보았습니다.
플러그인을 수정하는 것은 쉬운 일이 아니기 때문에 간단한 방법들을 고민해 보았고
잘못된 경로의 접근을 서버에서 올바른 경로로 접근할 수 있도록 리다이렉션 시키는 것으로 시도해보려 합니다.
.htacces파일은 디렉토리 마다 존재할 수 있고 요청 깊이에 따라 읽어 들이는 것으로 압니다.
그러나 /ontent/ 폴더는 존재하지 않기 때문에 루트 디렉토리에 있는 .htacces 파일을 수정해봅니다.
(/ontent 폴더 생성 이후 .htacces 파일을 추가하여 작업 할 수도 있습니다)
목표는 /ontent/~ 디렉토리로 접근하는 요청을 전부 /wp-content/~로 변경하는 것 입니다.
RewriteEngine On
RewriteRule ^ontent/(.*) /wp\-content/$1 [L]
(NC는 대소문자 구분하지 않음을, L은 RewriteRule의 종료를 의미합니다.)
위 구문을 추가해 보았지만 동작하지 않습니다...
RewriteRule & RewriteCond 구문이 틀렸거나 .htacces에 대한 사용 방법이 잘못되었을 수 있다고 생각합니다.
(2022-01-05 추가)
Bitnami는 보안상의 이유로 .htacces 파일을 읽지 않고 있습니다.
이는 Bitnami app file중 AllowOverride None으로 구성된 경우 해당 디렉토리의 .htacces를 읽어들이지 않기 때문입니다.
/opt/bitnami/apache/conf/vhosts/wordpress-vhost.conf
/opt/bitnami/apache/conf/vhosts/wordpress-https-vhost.conf
두 경로에 있는 AllowOverride None을 AllowOverride Yes로 변경하여줍니다.
해당 URL 경로에 접근하여도 서버는 /wp-content/~의 경로로 파일을 불러 오기 때문에 문제 없이 동작합니다.
언제든 의견 남겨 주시면 감사하겠습니다.
감사합니다.
Please leave any ideas related to this.
[참고 자료]
- 언어 선택기 커스텀 방법
- Language Switcher Options
- [script.js] sitepress-multilingual-cms/classes/language-switcher/class-wpml-is-assets.php
'오늘도 개발자 > WEB&워드프레스' 카테고리의 다른 글
[wordpress] 테마 사용자정의하기 ( Theme Customization ) (0) | 2022.02.15 |
---|---|
[Wordpress] 관리자 메뉴 추가 (How to add administration menus) (0) | 2022.01.19 |
linux에서 bitnami wordpress stack으로 설치시 url "/wordpress/" 제거 방법 (0) | 2021.12.21 |
업로드 용량 설정 (0) | 2019.06.17 |
워드프레스 Elementor Pro 할인 정보 (0) | 2019.06.10 |
- Total
- Today
- Yesterday
- 썸머노트
- 이전설치
- wp-members
- 지대공
- URL디코딩
- URL인코딩
- wordpress #워드프레스 #url
- FTP권한문제
- MySQL
- php
- WordPress
- 코스모스팜
- 스프레드연산자
- 라이트세일
- url복사
- Sanitize
- 워드프레스
- 빈화면
- 빛의성당
- Theme Customization
- 이사
- 철거
- 11번가 아마존 #우주패스 #우주쓰레기
- CSPRNG
- 사용자정의하기
- 한빛미디어
- 고흐1인칭시점
- 도스 코파스
- Lighitsail
- ontent
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |