이전 목록 다음
채택완료

엣지에서만 적용이 안되는 htaccess 이슈

2023-04-24 (월) 18:06:31 3,008
Copy
#### 그누보드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 에 

Copy
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개 / 댓글 7개

채택된 답변
+20 포인트
2023-04-25 (화) 08:57:58

다른 브라우저에서는 정상적으로 작동하고있다면 엣지 브라우저 안에서 일어난 문제일 확률이 큽니다.

URL 남겨주시면 제쪽에서도 확인해보겠습니다.

답변에 대한 댓글 4개

아직 오픈이 안된 사이트라 쪽지로 url 드렸습니다!
http://a.co.kr을 https://a.co.kr 로 리다이렉트 해보시겠어요?
오?? 됩니다... 앞에 https 없이 그냥 a.co.kr 로 접속할 땐 왜 안되는건지...ㅠ
http://a.co.kr 에서 응답은 301인데 변경점 url이 없어서 다시 http://a.co.kr로 요청하다보니 루프가 돌아서 뜬 오류인것 같습니다.
2023-04-25 (화) 06:31:47

해당 도메인을 올려 보시는 것이 좋을 듯 합니다.

답변에 대한 댓글 1개

아직 오픈이 안된 사이트라 쪽지로 url 드렸습니다!
2023-04-24 (월) 22:27:20

챗GPT답변입니다. 궁금해서 물어봤는데 아래와 같은 답변을 나왔는데 뭔말인지 모르겠네요.

참고하세요..

그누보드5의 rewrite 규칙은 일반적으로 Apache 모듈인 mod_rewrite를 사용하여 작성됩니다.

하지만 엣지는 IIS (Internet Information Services) 웹 서버를 사용하므로 Apache와 다른 구성을 가지고 있습니다.

이러한 차이로 인해 Apache에서는 작동하는 rewrite 규칙이 IIS에서는 작동하지 않을 수 있습니다.

따라서 IIS에서도 작동할 수 있는 rewrite 규칙을 작성해야 합니다.

아래는 IIS에서 사용 가능한 예시입니다.

Copy
<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}&amp;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}&amp;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}&amp;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}&amp;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}&amp;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}&amp;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}&amp;rewrite=1" />
</rule>

<rule name="bbs/board seo rewrite rule" stopProcessing="true">
    <match url

답변에 대한 댓글 2개

또 다른 답변..

이 rewrite 규칙이 Edge에서 작동하지 않는 이유는 아마도 mod_rewrite 모듈이 Edge에서 활성화되어 있지 않기 때문일 것입니다.

Edge에서 mod_rewrite 모듈을 사용하도록 설정하려면, httpd.conf 파일에서 "LoadModule rewrite_module modules/mod_rewrite.so"와 같은 줄을 찾아 주석 처리된 상태에서 제거하고 모듈을 로드하도록 설정해야 합니다.

그러나 이 작업은 서버에서의 권한이 필요하고, 서버 구성에 따라 다를 수 있으므로 서버 관리자나 호스팅 업체에게 문의하시는 것이 좋습니다.
답변 감사드립니다... 저도 챗gpt 는 사용하고 있어서 알려준대로 했었는데 안되더라구요ㅠ 그래서 도움을 구하고자 질문을 남겼습니다ㅠ

답변을 작성하려면 로그인이 필요합니다.