테스트 사이트 - 개발 중인 베타 버전입니다

htaccess 설정 방법 채택완료

스피드퀸 3년 전 조회 2,724

질문1 : 1로 접근시 2와 같이 동작되도록 하고 싶은데,

htaccess 를 어떻게 설정해야 할까요?

아래를 활용하여 그누보드에서 일반 페이지 만들때 좀 더 깔끔한 url 을

사용하고 싶습니다.

답변 주시면 감사 하겠습니다.

맨 아랫줄은 제가 위에 보고 참고해서 임의로 작성 해봤는데, 안되는 군요 ㅠㅠ

 

1.http://site.com/cms/page/company

2.http://site.com/cms/page/index.php?pid=company

 

RewriteEngine On RewriteBase /cms/ 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]

 

RewriteRule ^page/([0-9a-zA-Z_]+)$ page/index.php?pid=$1

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

답변 7개

채택된 답변
+20 포인트

질문하신 것은

RewriteRule ^content/([0-9a-zA-Z_]+)$  bbs/content.php?co_id=$1&rewrite=1  [QSA,L] 와

RewriteRule ^page/([0-9a-zA-Z_]+)$ page/index.php?pid=$1        [QSA,L] 

이것이 같습니다.

안 된다니 이상하네요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

스피드퀸
3년 전
그러게요 구조가 같아서 되야 정상 같은데...

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

안되지만...

많이 알려주셔서 일단 채택했습니다..

감사합니다~

뭔가 다른 호스팅에서 테스트 해봐야 할까봐요.

로그인 후 평가할 수 있습니다

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

아래와 같은 구조로 되어있는데..

 

1.htaccess 

 

 

2.아래 경로로 요청시 동작 안됨

 

3.아래 경로로 요청시 안되야 정상인거 같은데 작동함...

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
3년 전
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

이것 때문에 정상 동작합니다.

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

주소창에 1과 같이 접근하면 안되야 하는거 아닌가요?

...

1.https://site.cafe24.com/cms/page/?pid=company" rel="nofollow noreferrer noopener" target="_blank">https://site.cafe24.com/cms/page/?pid=company

===

안 된다고 하시면, cms/page/index.php 파일이 없는 건가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

스피드퀸
3년 전
/cms/page/index.php?pid=company
경로에 파일은 정확히 있습니다.
엑스엠엘
3년 전
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
이 세트가 파일이나 디렉터리가 없으면

그 다음 rule이 실행되는 거든요.

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

답변 주셔서 감사합니다.

 

선생님 호스팅에서는 되는데 제꺼만 안되는걸까요?

 

비슷한 패턴보고 살짝 바꾸면 될줄 알았는데,

이리도 해보고 저리도 해봐도 안되는군요 ...

뭘 몰라서 안되는 건지 정말 답답하군요...

 [QSA,L] 요거는 뭔지 모르는데 다 붙어 있길래 필요한거 같아서 넣었습니다

현재 풀 코드는 일단 아래와 같이 되있습니다.

 

근데 

주소창에 1과 같이 접근하면 안되야 하는거 아닌가요?

2는 그냥 htacess 작성 내용과 관계없이 평소랑 똑같이 작동 하네요.

 

1.https://site.cafe24.com/cms/page/?pid=company

2.https://site.cafe24.com/cms/page/company

 

#### 그누보드5 rewrite BEGIN ##### RewriteEngine On RewriteBase /cms/ 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 ^page/([0-9a-zA-Z_]+)$ page/index.php?pid=$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] #### 그누보드5 rewrite END #####

로그인 후 평가할 수 있습니다

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

우선 알려주셔서 감사합니다~

 

나머지 룰은 제가 작성한게 아니고,

그누보드5 관리자 기본환경설정 짧은 주소 url 설정에 있는거 복사해서그대로 붙여 넣었습니다.

제가 그누보드를  site.com/cms/ 경로에 설치했구요. 그래서 

htaccess 안에 RewriteBase /cms/ 내용이 들어가 있네요

 

RewriteEngine On RewriteBase /cms/  

위 내용이 들어가 있다면 처음에 알려주신데로, 

아래와 같이 작성하면 정상 작동 해야 하는게 맞는 거겠죠?

RewriteRule ^page/([0-9a-zA-Z_]+)$ page/index.php?pid=$1

 

만약 RewriteBase /cms/ 를 지운다면 다시 답변 주신데로 아래와 같이 작성하면 동작이 되는거고..

RewriteRule ^cms/page/([0-9a-zA-Z_]+)$ cms/page/index.php?pid=$1

 

흠..

근데 둘다 안되는데, 카페24 문제인걸까요?

htaccess 를 처음부터 공부해야하나...

쉬울 줄 알았는데, 너무 어렵네요..흑흑 ㅠㅠ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
3년 전
RewriteRule ^content/([^/]+)/$ bbs/content.php?co_seo_title=$1&rewrite=1 [QSA,L]
위와 같은 방식으로
RewriteRule ^page/([0-9a-zA-Z_]+)$ page/index.php?pid=$1
이것도 해 보시면 어떨까요?

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

rule은 순서가 중요합니다.

 

RewriteRule ^rss/([0-9a-zA-Z_]+)$  bbs/rss.php?bo_table=$1        [QSA,L] 이 다음에

RewriteRule ^page/([0-9a-zA-Z_]+)$ page/index.php?pid=$1

넣어 보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

스피드퀸
3년 전
우선 답변 주셔서 감사합니다.
하지만...

Not Found
The requested URL /cms/page/company was not found on this server.

뜨면서 안되는 군요..

아직 찾아보고 있는 중이라..
shop, content 폴더 명이 다르면 순서가 상관 없을거 같은데,
순서가 중요 하군요...

page 앞에 ^ 은 뭐하는 친구인지..
스피드퀸
3년 전
카페24 호스팅이라 안되는걸까요?..
엑스엠엘
3년 전
cms가 더 들어 가 있군요.

RewriteRule ^cms/page/([0-9a-zA-Z_]+)$ cms/page/index.php?pid=$1

이렇게 해 보세요.

나머지 rule도 cms가 있어야 동작할 듯합니다.

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

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

로그인