라이믹스 2.x 최신버젼 업데이트 후 링크 문제에 관해 문의드립니다.
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.3 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
라이믹스 1.9버젼에서 최신 2.1x로 업데이트 / 라이믹스 2.x에서 권장하는 rewrite 규칙 ( https://github.com/rhymix/rhymix/blob/master/common/manual/server_config/rhymix-nginx.conf ) 내용으로 변경 저장완료 했습니다.
1. 게시판 목록화면 ( https://nakknakk.com/c_fishing )에서 로그인 버튼을 클릭하면 로그인 버튼에 링크된 주소 ( https://nakknakk.com/index.php?act=dispMemberLoginForm ) 로 화면이 정상이동합니다.
그러나 게시판 글보기 화면 ( https://nakknakk.com/c_fishing/5421 ) 에서 같은 로그인 버튼의 링크된 주소는 ( https://nakknakk.com/index.php?document_srl=5421&act=dispMemberLoginForm ) 찍히고 클릭을 하면 로그인 화면으로 이동하지 않고 현재 게시판 글보기 화면( https://nakknakk.com/c_fishing/5421 ) 불러오는 증상이 발생합니다.
레이아웃 소스상에서 로그인 버튼에 적용된 코드는 아래와 같습니다.
<a class="tw-color-f5" href="{getUrl('act','dispMemberSignUpForm','mid',$layout_info->royals_mid)}">로그인</a>
또는 특정 상황에서 링크된 주소 중 index.php가 자동으로 제거되어 보이기도 합니다.
https://nakknakk.com//?act=dispSocialxeConnectSns&type=login&service=naver
어디를 살펴봐야 할지 힌트나 조언 부탁드리겠습니다.
2. nginx default.conf 설정의 문제일수 도 있을까요? ( 아주 오래전 의뢰로 서버가 설정되었습니다. )
server {
server_name nakknakk.com;
root /home/youtubeharuoops/www;
index index.php index.html;
client_max_body_size 32m;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/nakknakk.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/nakknakk.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name www.nakknakk.com;
return 301 $scheme://nakknakk.com$request_uri;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/nakknakk.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/nakknakk.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = nakknakk.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name nakknakk.com;
listen 80;
return 404; # managed by Certbot
}
server {
if ($host = www.nakknakk.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name www.nakknakk.com;
listen 80;
return 404; # managed by Certbot
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
댓글 2
레이아웃 소스가 주소를 이상하게 생성하는 것 같습니다.
로그인 링크의 경우, $layout_info->royals_mid 이게 뭔지 모르겠지만 그냥 $mid로 바꿔보세요.
정상적인 서버라면 주소에 index.php는 필요없습니다. 단, 슬래시가 두 개 나오는 것은 이상하네요.
올려주신 nginx 설정에 라이믹스 rewrite 규칙을 로딩하는 곳이 전혀 보이지 않습니다.
문제가 되었던 부분이 덕분에 모두 해결되었습니다. 답변감사합니다.^^
1. getUrl('act','dispMemberLoginForm','mid',$layout_info->royals_mid) 을 getUrl('act','dispMemberLoginForm')로 변경하니 게시판 글읽기 화면에서도 정상적으로 로그인 화면을 불러와집니다.
2. 슬래쉬가 두개 나오는 부분은 단순 코드가 잘못 기재된 부분이었습니다. ^^;
3. 주석처리된 부분을 제거 하고 질문글을 올리는 과정에서 rewrite 규칙 로딩하는 부분만 누락되었습니다.
server {
server_name nakknakk.com;
root /home/youtubeharuoops/www;
index index.php index.html;
client_max_body_size 32m;
include rhymix_rewrite.conf;
location ~ [^/]\.php(/|$) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
......