엣지에서만 적용이 안되는 htaccess 이슈
본문
#### 그누보드5 rewrite BEGIN #####
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# a.co.kr 접속시 https://b.com 으로 리디렉션
RewriteCond %{HTTP_HOST} ^a\.co\.kr$ [NC]
RewriteRule ^(.*)$ https://b.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^shop/list-([0-9a-z]+)$ shop/list.php?ca_id=$1&rewrite=1 [QSA,L]
RewriteRule ^shop/type-([0-9a-z]+)$ shop/listtype.php?type=$1&rewrite=1 [QSA,L]
RewriteRule ^shop/([0-9a-zA-Z_\-]+)$ shop/item.php?it_id=$1&rewrite=1 [QSA,L]
RewriteRule ^shop/([^/]+)/$ shop/item.php?it_seo_title=$1&rewrite=1 [QSA,L]
RewriteRule ^content/([0-9a-zA-Z_]+)$ bbs/content.php?co_id=$1&rewrite=1 [QSA,L]
RewriteRule ^content/([^/]+)/$ bbs/content.php?co_seo_title=$1&rewrite=1 [QSA,L]
RewriteRule ^rss/([0-9a-zA-Z_]+)$ bbs/rss.php?bo_table=$1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)$ bbs/board.php?bo_table=$1&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/([^/]+)/$ bbs/board.php?bo_table=$1&wr_seo_title=$2&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/write$ bbs/write.php?bo_table=$1&rewrite=1 [QSA,L]
RewriteRule ^([0-9a-zA-Z_]+)/([0-9]+)$ bbs/board.php?bo_table=$1&wr_id=$2&rewrite=1 [QSA,L]
</IfModule>
#### 그누보드5 rewrite END #####
기존 htaccess 에
RewriteCond %{HTTP_HOST} ^a\.co\.kr$ [NC]
RewriteRule ^(.*)$ https://b.com/$1 [R=301,L]
위 코드 2줄을 추가했는데요.
카페24 서버 사용중이고, 하나의 서버에 2개의 도메인 a.co.kr 과 b.com 이렇게 연결된 상태입니다. 도메인은 둘다 ssl 인증도 해둔상태입니다.
그런데 로그인이 풀리는 이슈로 인해 한 도메인으로만 접속이 되게 하기위해 리디렉션을 걸어둔 상태인데요....
크롬, 웨일, 파폭 모두 a.co.kr 접속시 https://b.com 으로 이동이 잘 됩니다.
서브페이지로 접속해도 이동이 잘 되고있는데요. ex) a.co.kr/shop/mypage.php 로 접속해도 https://b.com/bbs/login.php?url~~~~~ 로그인 페이지로 이동되고, 로그인하면 b.com/shop/마이페이지로이동도 잘 됩니다.
그런데 엣지에서만 적용이 안되고 있습니다.
엣지에서 a.co.kr 접속시 ERR_TOO_MANY_REDIRECTS 가 떠서 해당 에러관련해서 검색해보니 쿠키 삭제 해보라고 해서 쿠키도 지워봤지만 해결이 안되고 있습니다.
심지어 엣지에서는 b.com 으로 접속하면 https 가 붙지 않은채 안전하지않음이 뜹니다.
추가한 2줄을 지우고 엣지에서 a.co.kr 또는 b.com 으로 접속하면 둘 다 접속은 됩니다. 근데 SSL적용은 안된채로 접속이 됩니다.
대체 엣지만 왜 그런건지 알 수가 없어 문의 남겨봅니다ㅠ
!-->!-->답변 3
다른 브라우저에서는 정상적으로 작동하고있다면 엣지 브라우저 안에서 일어난 문제일 확률이 큽니다.
URL 남겨주시면 제쪽에서도 확인해보겠습니다.
챗GPT답변입니다. 궁금해서 물어봤는데 아래와 같은 답변을 나왔는데 뭔말인지 모르겠네요.
참고하세요..
그누보드5의 rewrite 규칙은 일반적으로 Apache 모듈인 mod_rewrite를 사용하여 작성됩니다.
하지만 엣지는 IIS (Internet Information Services) 웹 서버를 사용하므로 Apache와 다른 구성을 가지고 있습니다.
이러한 차이로 인해 Apache에서는 작동하는 rewrite 규칙이 IIS에서는 작동하지 않을 수 있습니다.
따라서 IIS에서도 작동할 수 있는 rewrite 규칙을 작성해야 합니다.
아래는 IIS에서 사용 가능한 예시입니다.
<rule name="Redirect a.co.kr to b.com" stopProcessing="true">
<match url="^(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^a\.co\.kr$" />
</conditions>
<action type="Redirect" url="https://b.com/{R:1}" redirectType="Permanent" />
</rule>
<rule name="shop/list rewrite rule" stopProcessing="true">
<match url="^shop/list-([0-9a-z]+)$" />
<action type="Rewrite" url="shop/list.php?ca_id={R:1}&rewrite=1" />
</rule>
<rule name="shop/type rewrite rule" stopProcessing="true">
<match url="^shop/type-([0-9a-z]+)$" />
<action type="Rewrite" url="shop/listtype.php?type={R:1}&rewrite=1" />
</rule>
<rule name="shop/item rewrite rule" stopProcessing="true">
<match url="^shop/([0-9a-zA-Z_\-]+)$" />
<action type="Rewrite" url="shop/item.php?it_id={R:1}&rewrite=1" />
</rule>
<rule name="shop/item seo rewrite rule" stopProcessing="true">
<match url="^shop/([^/]+)/$" />
<action type="Rewrite" url="shop/item.php?it_seo_title={R:1}&rewrite=1" />
</rule>
<rule name="bbs/content rewrite rule" stopProcessing="true">
<match url="^content/([0-9a-zA-Z_]+)$" />
<action type="Rewrite" url="bbs/content.php?co_id={R:1}&rewrite=1" />
</rule>
<rule name="bbs/content seo rewrite rule" stopProcessing="true">
<match url="^content/([^/]+)/$" />
<action type="Rewrite" url="bbs/content.php?co_seo_title={R:1}&rewrite=1" />
</rule>
<rule name="bbs/rss rewrite rule" stopProcessing="true">
<match url="^rss/([0-9a-zA-Z_]+)$" />
<action type="Rewrite" url="bbs/rss.php?bo_table={R:1}" />
</rule>
<rule name="bbs/board rewrite rule" stopProcessing="true">
<match url="^([0-9a-zA-Z_]+)$" />
<action type="Rewrite" url="bbs/board.php?bo_table={R:1}&rewrite=1" />
</rule>
<rule name="bbs/board seo rewrite rule" stopProcessing="true">
<match url
!-->
해당 도메인을 올려 보시는 것이 좋을 듯 합니다.