티스토리 뷰

This 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년~)

 

아래는 이러한 에러를 겪는 사용자들과 해결 방법에 대한 일부 토론 내용입니다.

제안된 유일한 해결 방법은 템플릿 파일(/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로 변경하여줍니다.

/opt/bitnami/apache/conf/vhosts/wordpress-vhost.conf

http://domin.com/ontent/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-dropdown-click/style.min.css?ver=1 

해당 URL 경로에 접근하여도 서버는 /wp-content/~의 경로로 파일을 불러 오기 때문에 문제 없이 동작합니다.

 

언제든 의견 남겨 주시면 감사하겠습니다.

 

감사합니다.

 

Please leave any ideas related to this.

 

 

 

 

[참고 자료]

 

 

 

 

 

 

댓글