domain.com/@아이디 이렇게 접속이 되게 하려면

domain.com/@아이디 이렇게 접속이 되게 하려면

QA

domain.com/@아이디 이렇게 접속이 되게 하려면

본문

domain.com/ 이런식으로,
'@' 아니더라도 심플('?mb_id=아이디' 이런 것처럼 ?나 = 사용안하고요.)하게 계정아이디로 마이페이지 같은 페이지를 만들어서 접속할 수 있는 방법이 있을까요?

게시판을 회원마다 만들어 줄 수는 없고,
게시판 하나에서 특정회원이 작성한 글을 볼 수 있게
url 을 단축주소처럼 사용할 수 있는 방법이 있는지 궁금합니다.
 

이 질문에 댓글 쓰기 :

답변 3

재작성 스킬을 활용하시면 도메인 뒤에 ‘@아이디’와 같은 형태로 접속하게 하실 수 있습니다.

예로, Apache 서버를 사용한신다면 .htaccess 파일에 mod_rewrite를 이용해

다음과 같이 설정하실 수 있습니다.

RewriteEngine On
RewriteRule ^@([a-zA-Z0-9_-]+)/?$ /profile.php?username=$1 [L,QSA]

이 규칙은 도메인 뒤에 ‘@아이디’ 형식으로 요청이 들어오면

내부적으로 profile.php 파일에 해당 아이디를 파라미터로 전달하여 처리하도록 합니다.

Nginx 서버의 경우에도 비슷한 방식의 rewrite rule을 설정할 수 있습니다.

즉, 회원마다 별도의 게시판을 만드는 대신, 단일 게시판 내에서

특정 회원의 글만 필터링해서 보여주는 기능을 구현할 수 있으며,

이를 위해 URL rewriting을 통한 “심플 URL”을 사용하시면 됩니다.

이는 많은 웹 프레임워크에서 기본적으로 지원하는 기능이니,

개발 환경에 맞춰 적절한 방법을 선택하시면 되지않나 싶습니다.

 

유지보수/확장성을 고려해,

MVC 패턴을 채택한 프레임워크를 활용하실 것을 추천드립니다.

호스팅은 카페24 를 사용하고 있습니다.

답변 주시기 전에

member_profile.php 파일을 만들고,

.htaccess 에서

RewriteEngine On
RewriteRule ^@([^/]+)/?$ /member_profile.php?mb_id=$1 [QSA,L]

를 추가하여 여러시도를 해봤는데,

https://도메인.com/member_profile.php?mb_id=아이디
로는 페이지가 열리는데,

" target="_blank" >https://도메인.com/
로는 404 에러만 계속 나더군요.


알려주신 대로
RewriteRule ^@([a-zA-Z0-9_-]+)/?$ /profile.php?username=$1 [L,QSA]
적용해봐도 404 에러가 나네요 ㅜㅜ

*Apache의 mod_rewrite 모듈이 활성화되어 있는지 확인하시어,
  해당 .htaccess 파일이 실제로 읽히고 있는지 테스트하시기 바랍니다.

*.htaccess 파일이 사이트 루트에 위치한 경우,
  RewriteBase /를 명시적으로 지정하시면 경로 해석에 도움이 될 수 있습니다.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^@([^/]+)/?$ /member_profile.php?mb_id=$1 [QSA,L]

*만약 동일한 이름의 파일이나 디렉토리가 존재한다면,
  rewrite 규칙이 제대로 작동하지 않을 수 있습니다.
  위 예시처럼 RewriteCond %{REQUEST_FILENAME} !-f와
  RewriteCond %{REQUEST_FILENAME} !-d를 추가하여
  요청 URL이 실제 파일이나 디렉토리가 아닐 때만 규칙이 적용되도록 하시기 바랍니다.

domain.com/게시판아이디?sfl=mb_id&stx=회원아이디
이렇게 하면 해당 게시판의 작성자 아이디로 검색해서 보여줍니다.

 

안녕하세요...

 님

 

먼저 .htaccess 파일에 보면


#### 그누보드5 rewrite BEGIN #####
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

이부분이 있을꺼에요 

이 구문 바로 밑에 써주셔야 합니다. 맨 먼저 실행할 수 있도록

RewriteRule ^ - [L] 바로 밑에 

 

RewriteRule ^@([0-9a-zA-Z_-]+)/?$ member_profile.php?mb_id=$1 [L,QSA] 

추가 해주세요 잘 모르겠다? 하시면 스샷 참고하세요

 

978180634_1741943194.6697.png

 

그리고 나서 테스트 해보시면 잘 되실껍니다.

아래는 실제 구동 영상입니다.

978180634_1741943269.654.gif

현재 제가 쓰고 있는
.htaccess 코드는

PHP_FLAG register_globals ON
PHP_VALUE mysql.default_charset UTF8

# sitemap.xml PHP 처리
<Files sitemap.xml>
    ForceType application/x-httpd-php
</Files>

RewriteEngine On

# www 접두사 제거 및 HTTPS 적용 (단일 리다이렉션으로 처리)
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC,OR]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

인데 어떻게 수정하면 될까요?

404는 코드와 무관합니다. 해당 파일을 찾을 수 없다는 뜻입니다.

하다못해 1234 글자만 써도 나와야 합니다.

실제 사용한 .htaccess 파일 소스 코드 전체를 올려주시거나 여기 올리기 좀 그렇다면 쪽지로 보내주세요

답변을 작성하시기 전에 로그인 해주세요.
전체 134
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT