워드프레스 블로그를 정적인 html 웹 사이트처럼 만들기
워드프레스를 정적인 HTML 웹사이트로 만든다는 것은, 달리 말하면, WordPress의 고유주소(permalinks) 체계를 전형적인 HTML 웹사이트의 URL 형식와 똑같게 만든다는 것으로 볼 수 있습니다. 왜냐하면, 워드프레스는 정적인 HTML 사이트와는 달리, 디렉토리와 문서 파일이 실제로 존재하지 않기 때문에, 직접 디렉토리나 문서 파일을 만들 방법이 없고, 단지 고유주소만 정적인 사이트와 똑같이 만들어 줄 수 있습니다. 웹 문서(파일)의 주소는 해당 파일의 경로에 의해서 결정이 되기 때문에(예: http://yoursite.com/directory/파일명.html), 역으로 생각하면, 가상이긴 하지만, 고유주소 체계에 의해서 워드프레스의 파일과 디렉토리 구조가 결정된다고도 볼 수 있습니다. 어차피 방문자는 직접 계정에 접속할 수 없고 브라우저에 나타난 주소만으로 사이트의 디렉토리 구조와 파일을 가늠할 수 있습니다.

워드프레스를 웹 사이트처럼 만들기
검색엔진의 최적화에서 주소가 차지하는 비중은 크지 않으므로, 이미 작성한 문서가 많은 사이트는 고유주소를 바꾸는 것은 권장하지 않습니다. 이제 막 워드프레스를 설치하신 분들에게 추천하는 방식입니다. 그리고 사용자 정의구조를 사용하기 위해서는 호스팅의 서버가 mod_rewrite 와 .htaccess 파일의 사용이 가능해야 합니다. 또한 사용자 정의 구조 사용시에 포스트의 고유주소에는 한글이 사용이 가능한데 페이지(Page)에서는 한글을 사용하면 해당 고유주소가 해당 웹문서를 찾지 못하는 문제가 있습니다.
정적인 HTML 웹사이트의 장점
아래와 같은 전형적인 HTML 사이트의 정적인 주소가,
http://yoursite.com/creating-website/domain-registration.html
아래와 같은 여러가지 파라미터들로 구성된 동적인 주소보다,
http://yoursite.com/index.php?id_sezione=360&sid=3a5ebc944f41daa6f849f730f1
방문자의 입장에서 보기에 편하며, 해당 문서가 어떤 문서인지 대충 짐작을 할 수 있습니다. 또한 이러한 파라미터들로 이루어진 동적인 주소는, 동일하거나 유사한 사이트 콘텐츠를 가리키는 URL을 불필요하게 많이 생성하므로 크롤러에 문제를 일으킬 수 있습니다.
또한 검색엔진은, 실제로 존재하는 문서없이, 방문자가 특정 웹문서를 요청할 때에만, 데이터베이스에서 해당 웹문서의 정보들을 불러와서 방문자에게 웹문서를 보여주는 동적인 사이트 보다는, 실제로 파일이 존재하는 정적인 사이트를 조금 더 신뢰하는 경향이 있습니다.
그리고 구글에서는 검색 엔진 최적화 초보자 가이드에서 동적 URL을 정적 URL로 바꾸는 것에 대해서 아래와 같이 말하고 있습니다.
Google은 복잡한 구조를 포함하여 모든 유형의 URL 구조를 크롤링하는 데 능숙하지만, URL을 가능한 단순하게 만드는 것이 사이트를 방문하는 사용자와 검색엔진 모두에게 도움이 될 것입니다. 일부 웹마스터는 동적 URL을 정적 URL로 다시 작성하여 이를 수행하기도 합니다. Google에서 허용되는 작업이기는 하지만 이는 고급 절차이므로 잘못 수행될 경우 사이트의 크롤링 문제가 발생할 수 있습니다.
고유주소의 사용자 정의구조 변경하기
주의: 기존에 포스팅한 글이 있다면 그 포스팅들은 다시 재 저장해야 해당 포스트의 링크가 제대로 작동합니다. 그리고 permalink 구조에 index.php가 포함되어 있다면 자신의 호스팅이 아파치 서버인지 확인해 봐야 합니다.
워드프레스는 기본적으로, 포스트나 페이지 또는 카테고리의 주소에, 아래와 같이, ID를 넣어서 사용하고 있습니다.
포스트 주소 : http://yoursite.com/?p=1 페이지 주소 : http://yoursite.com/?page_id=2 카테고리 주소 : http://yoursite.com/?cat=1
위와 같은 주소형식을, 몇가지 플러그인을 사용하여 아래와 같이 만들 수 있습니다.
포스트 주소 : http://yoursite.com/categoryname/post.html 페이지 주소 : http://yoursite.com/page.html 하위 페이지 주소 : http://yoursite.com/pagename/page.html 카테고리 주소 : http://yoursite.com/categoryname/
워드프레스 블로그를 위와 같은 주소형식으로 만들기위해 아래와 같은 순서대로 진행하면 됩니다.
1. WP No Category Base 플러그인의 설치 – 워드프레스는 기본적으로 카테고리 주소를 ID로 표현하지만, 사용자 정의구조(custom structur)에 category 파라미터를 사용하게 되면, 아래와 같이, 모든 카테고리의 이름 앞에 ‘Category base’가 붙습니다. 꼭 필요한 것이 아닐 경우 제거하는 것이 좋습니다. 알림판의 ”Plugins>Add New’ 페이지에서 검색해서 설치하고 활성화(activate)해 주면 자동적으로 카테고리 이름 앞에 붙는 category base를 제거합니다. 따로 설정할 것은 없습니다.(WP No Category Base 플러그인 사이트)
http://yoursite.com/categorybase/categoryname/
2. sCategory Permalink 플러그인의 설치 – 기본 주소형식으로 사용할 경우 포스트의 주소는 카테고리의 의향을 받지 않습니다. 하지만 category 파라미터가 들어간 사용자 정의구조를 사용할 경우 포스트의 고유주소가 카테고리의 영향을 받습니다. 만약 포스트가 하나의 카테고리에만 분류되어 있다면 별 문제가 없는데, 2개 이상의 카테고리로 분류를 할 때에는 포스트 고유주소에 사용할 카테고리를 선택할 수 있어야 합니다. Hikari Category Permalink 플러그인이 그런 역할을 합니다.(Hikari Category Permalink 플러그인 다운로드) 알림판에서 검색한 후에 설치하고 활성화 해 주면 됩니다.(Hikari Category Permalink 플러그인 설치 및 사용법)
3. 사용자 정의구조 지정하기 – 검색엔진 최적화에 관심이 많은 분들의 블로그는 고유주소를 보통 아래와 같은 사용자 정의 구조로 사용하고 있습니다. 워드프레스에서 카테고리는 HTML 사이트의 디렉토리와 같은 역할을 합니다.(검색엔진 최적화를 위한 링크와 디렉토리 구조)
/%category%/%postname%/
하지만 주소에 사용되는 슬래시(/)는 디렉토리를 의미하므로 엄밀히 말하면 위의 고유주소 형식은 파일(웹문서)의 주소가 아닌 디렉토리를 의미하고 있습니다.(index 파일과 슬래쉬의 역할) 따라서 아래와 같이 포스트나 페이지는 일종의 웹문서 파일이므로 고유주소 끝에 확장자 html이 붙어있어야 합니다. 그리고 카테고리는 파일이 아니라 웹문서들이 담겨있는 디렉토리이므로 html 확장자 없이 슬래쉬로 끝나야 합니다. 이렇게 설정하기 위해서 알림판(dashboard)의 ‘settings>permalinks’ 페이지로 가서 사용자정의 구조를 아래와 같이 설정을 하고 저장을 합니다.
/%category%/%postname%.html/
위에 사용한 파라미터는 워드프레스에서 공식적으로 지원하는 형식이 아니라서 아직 제대로 고유주소를 표현하지 못 합니다. 우선은 위의 형식으로 설정한 후에 저장하면 됩니다.
4. HTML on Pages 플러그인 설치 – 위와 같이 사용자 정의 구조로 사용했을 때 각각의 고유주소는 아래와 같이 표현됩니다.
포스트 주소 : http://yoursite.com/categoryname/post.html/ 페이지 주소 : http://yoursite.com/about/ 카테고리 주소 : http://yoursite.com/categoryname/
위에서 보면 포스트의 고유주소는 .html/이 붙어 있는데, 페이지의 고유주소에는 .html이 붙어 있지 않습니다. 페이지에도 확장자 html을 붙이기 위해, 알림판의 플러그인 검색창에 ‘HTML on Pages’ 플러그인을 검색해서 설치하고 활성화 합니다.(HTML on Pages 플러그인 사이트) 그러면 다른 주소는 변하지 않고 페이지 주소만 아래와 같이 변합니다.
페이지 주소 : http://yoursite.com/about.html
5. Smart Trailing Slash 플러그인 설치 – 이제 html 뒤에 있는 슬래쉬를 떼는 작업만 남았슴니다. Smart Trailing Slash는 html 뒤의 슬래쉬를 제거해 주는 PLUGIN 인데 알림판에서 검색이 안 되고 플러그인 사이트도 없습니다. 다운로드 주소만 있습니다.(Smart Trailing Slash 플러그인 다운로드) 다운로드 받은 파일의 압축을 풀면 smart-trailing-slash.php 파일이 있는 smart-trailing-slash 폴더가 하나 있습니다. 폴더 통째로 워드프레스가 설치된 계정의 wp-content/plugins 디렉토리로 업로드합니다. 업로드 후에 알림판의 ‘Plugins>Installed’ 페이지로 가면 해당 플러그인이 있을 겁니다. 플러그인을 활성화시켜 주면 됩니다.
이렇게 해서, 워드프레스의 고유주소를 정적인 HTML 사이트의 고유주소 형식으로 바꾸는 작업이 다 끝이 났습니다. 좀 더 완벽하게 블로그를 웹사이트처럼 만들기 위해서는 홈페이지에 front 페이지를 적용하고, 템플릿을 조금 더 수정을 해야 합니다.



안녕하세요.
웹사이트처럼 처리하는 위는 방법대로 하여서 index와 카테고리의 페이지는 잘 적용되는데,
링크된 개별페이지는 못 찾아 열리지를 않습니다.
이곳에서 막혀서 몇일 헤매고 있습니다.
위의 과정을 순서대로 적용 했는데 안되면, html 확장자가 URL에 있다고 해서 큰 이점이 있는 것은 아니기 때문에, 그냥 html 안 붙이고 아래와 같은 퍼머링크를 사용하시는 것도 괜찮습니다.
/%category%/%postname%/
그리고, 워드프레스에 html 확장자를 붙이는 방법이 널리 쓰이는 것이 아니라서, 검색을 해봐도 안되는 이유는 잘 못찾겠네요. 그런데 제가 테스트한 곳에서는 잘 되고 있기 때문에, 위의 과정을 순서대로 해보고 안되는 과정은 호스팅 업체에 문의를 해 보시는 것도 한 방법인 것 같습니다.
그리고 위의 방법 대신에, 퍼머링크 구조를 아래와 같이 사용하고,
/%category%/%postname%.html
smart trailing slash 플러그인은 사용을 안하고 HTML on pages 플러그인만 사용을 하는 경우도 있습니다. 이 경우에는 카테고리 주소에 슬래쉬가 안 붙는 단점이 있긴 하지만 포스트나 페이지 글에는 html이 확장자로 붙습니다.
빠른 답변 감사합니다.
제가 Hikari Category Permalink로 활성화하려면 오류가 발생합니다
– Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /home/gnpsystems/public_html/wp-content/plugins/hikari-category-permalink/hikari-tools.php on line 18
그래서 대신 sCategory Permalink와 smart trailing slash, HTML on pages, WP No Category Base, Platunum SEO Pack 플러그인들을 활성화 시킨후.
고유주소를 /%scategory%/%postname%.html/로 설정하였습니다.
Hikari Category Permalink 플러그인이 활성화되어야/%category%/%postname%/로 고유주소를 쓸 수 있는것 같은데…
Hikari 플러그인에서 발생하는 에러는 php 버전이 낮아서 발생하는 문제인 것 같습니다. 아마도 그래서 님이 설치하신 워드프레스를 3.2로 업데이트하게 되면 요구하는 PHP 버전이 높아서 에러가 발생할 것 같습니다. 앞으로 워드프레스의 버전 업데이트를 생각하고 있다면 호스팅 업체에 문의해서 PHP 버전이 높은 서버를 사용하시는게 좋을 것 같습니다.
님 말씀대로 HIkari 플러그인을 사용하지 않으면 퍼머링크에 사용되는 카테고리 슬러그를 지정할 수 없다는 단점이 있긴 하지만, html 확장자와는 관련이 없습니다.
요즘은 도메인앞에 ”www’ 는 붙이지 않는데 님의 사이트는 강제로 앞에 붙게 되어 있네요. html 확장자도 잘 안 되고, www도 붙는 걸 보니, 처음 설치할때 원래 .htaccess 파일이 있지 않나 하는 생각이 듭니다. 그리고 .htaccess 파일에 워드프레스가 사용하는 부분 말고 다른 부분이 있는지 궁금합니다.
친절한 답변에 감사드립니다.
php버전이 4.4.6이어서 발생한 문제인 것 같습니다.
호스팅업체의 다른 상품도 같은 버전이어서 서버 이전을 고민해야 할것 같습니다.
감사합니다.
워드프레스 3.2 버전부터 최소 PHP 버전이 많이 올라가서 그런지, 요즘 님처럼 설치시에 깨진 글이 나오고 설치가 안된다는 질문을 하는 분들이 좀 있는 것 같습니다. 잘 해결하시길 바랍니다.
펌링크(고유주소)를 설정하는데 기본 설정 외로 설정하면
Page not found
The page you were after has moved or is no longer available.
We attemted to search based or your page request, unfortunately nothing was found. Try using the navigation or search fields on the top of the page.
이런 메시지가 나옵니다.
그리고 맨 앞에 /index.php를 입력하지 않으면 404에러 페이지가 뜨네요.
어떻게 해결해야 할까요
.htaccess 파일이 만들어져 있는 것은 확인해 보셨는지요?
네, 설정페이지에 나와있는대로
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
위와같이 만들어 올렸습니다
그렇다면, 저도 잘 모르겠네요. 님이 말씀하신 메세지는 워드프레스에서 주는 메세지가 아니고 호스팅 업체에서 안내하는 메세지라 도움이 별로 안되구요. .htaccess 와 호스팅 업체와 관련된 문제인 것 같은데 정확한 원인은 잘 모르겠습니다.
이것과 관련이 있을 지는 모르겠는데, wp-config.php 파일에 서버 정보는 입력하셨는지요?
http://wordpressblog.co.kr/wordpress-install/server-error/
그리고 smart trailing 과 html on page 플러그인 없이 단순히 사용자 정의 구조를 /%category%/%postname%/ 으로 사용해도 그런 문제가 발생하는지요?
index.php를 없애는 설정은 해결했는데 다른 건 마찬가지네요.
분명 처음엔 문제 없었던 것 같은데..
다시 깔아서 다시 시작해보는 게 나을지도..^^;
처음엔 문제가 없었다구요? 그럼 작성한 글이랑 카테고리 등을 다시 재저장 하시면 해결 될 것 같습니다. 그리고 새로 작성한 글들은 이상이 없을 겁니다. 이렇게 사용자정의구조가 바뀌게 될 경우를 대비해서, 리다이렉트 플러그인이나 리다이렉트 기능을 지원하는 SEO 플러그인을 미리 설치해 두시는게 좋습니다.
순서대로 해서 잘 적용 했습니다
제가 지금 보유한 페이지가 160개가 되는데
이걸 페이지 마다 갱신을 눌러줘야 페이지 주소가 적용 되네요
이러한 문제때문에 이제 막 워드프레스를 시작한 사람에게 추천하는건가요? 일괄적용 방법이 있을까요?
그리고 제가 정적인 페이지로 만드는 이유가 구글 검색 결과에서 블로그 검색이 아닌 사이트 검색 결과로 나오기 위함인데 이러한 작업으로 블로그가 아닌 사이트로 나올수 있는건가요?
구글 사이트맵등록도 했는데 제 사이트에 사이트링크가 없어서 사이트 링크도 적용되게 하기 위함도 있습니다. 사이트링크는 제가 만드는게 아니라 구글이 판단한다는 것으로 아는데 블로그는 사이트링크를 안 해주는걸로 알고 일단 정적 웹페이지로 바꾸고 있습니다. 정적인 페이지로 바꾸면 이것이다 해결 될까요?
요약
정적인 페이지로 바꾸는 이유
1. 워드프레스를 구글 검색 결과에 사이트 검색결과로 나오기 위해
2. 사이트 검색결과에 제 사이트 사이트링크가 나오기 위해
꽤 많은 게시물을 가지고 계시는 군요. 위의 방법을 사용하게 되면 게시물의 주소가 바뀌게 됩니다. 그래서 다른 사이트에서 님 사이트로 링크를 걸었을 경우, 링크가 바뀌어서 정확한 게시물을 찾지 못하게 됨니다. 그래서 막 시작하는 사이트나 게시물이 별로 없는 사이트에게 추천하는 방식입니다. 그리고 님처럼 게시물 수가 많을 경우 수정할 것도 많아지기도 하기 때문이기도 합니다.
제가 퍼머링크를 일괄적으로 바꾸는 방법을 찾아봤는데, 안타깝게도 찾을 수가 없네요.
그리고 위의 방법을 사용하는 이유는 검색엔진과 방문자에게 좀 더 체계적으로 알기쉽게 웹사이트를 둘러 볼 수 있게 하고, 크지는 않지만 조금이라도 검색결과에서 상위에 랭크되기 위한 방법이기도 하기 때문입니다. 사이트링크와는 직접적인 관계는 없습니다. 따라서 위의 방법을 적용한다고 해서 사이트링크가 되지는 않습니다.
그리고, 저도 님의 질문 때문에 사이트 링크에 대해서 검색을 해 봤는데, 사이트 링크는 구글 알고리즘에 의해 백프로 자동적으로 생성이 된다고 합니다. 사이트 링크가 생기려면 사이트의 나이가 약 1년 이상 되어야 하며, 게시물 글 수도 어느 정도 이상이 되어야 하고, 사이트의 내부링크도 체계적으로 구성되는 것이 좋다고 하네요.
http://hellboundbloggers.com/2010/03/13/25-basic-tips-to-get-google-sitelinks/
제가 보기엔 님의 사이트는 위의 조건을 다 만족하는 것 같구요. 사이트 뿐만 아니라 블로그도 사이트링크가 되는 것 같습니다. 구글에서 lolkor.com으로 님 사이트를 검색하니깐 이미 사이트링크가 뜨고 있습니다. 메인 페이지 밑에 사이트링크로 네 개 정도의 링크가 뜹니다. 하지만 사이트 링크에 포함되는 링크는 구글 알고리즘에 의해 자동적으로 결정이 됩니다. 저도 구글 웹마스터 툴 계정에 접속하면 제 사이트의 사이트링크(about, domain, 워드프레스 테마, 워드프레스 플러그인…)가 나와 있는데, 검색결과에는 그 링크들이 잘 안나오고 포스트 링크들이 나옵니다. 아마도 외부에서 오는 링크의 영향이 큰 듯 합니다. 더 궁금하신 점이 있으면 구글 웹마스터 툴에 가입하셔서 사이트를 등록하시면 더 많은 것들을 알 수 있습니다.
구글 웹마스터 툴
제 생각으로는, 좋은 사이링크를 만드려면 html 확장자를 붙이는 것보다 웹페이지 주소체계를 잘 만드는 것이 중요하다고 생각이 듭니다. 예를 들면 님의 메뉴에 정보라는 상위 메뉴와 그 밑에 있는 하위 메뉴가 똑같이 wp 밑에 위치하고 있습니다. 이걸 정보는 wp/ahout.html 로 하시고, 그 밑에 있는 기본 정보는 wp/about/stand.html 로 만들어 주시는게 좋을 것 같습니다.
그리고 검색결과에서 님 사이트의 메인페이지의 제목이 ‘처음’이라고 단 두글자만 나옵니다. 님 사이트의 주요내용으로 채워주시는게 좋을 거 같습니다.
참고 : http://wordpressblog.co.kr/wordpress-plugin/검색엔진최적화-platinum-seo-pack/
그리고 제로보드에서 워드프레스로 사이트 바꾸셔서 이전 링크 주소가 작동을 안 하는것 같은데, 리다이렉션 플러그인을 사용해서 이전 주소를 바뀐 주소로 리다이렉트 하는 것도 좋을 것 같습니다.
http://wordpress.org/extend/plugins/redirection/
우선 자세한 답변과 설명 정말 고맙습니다. 말씀대로 정보 밑에 있는 페이지는 전부 부모를 정보로 했습니다.
그리고 검색엔진 최적화 링크에 문법 검사기도 정말 좋습니다 익스에서 에러가 뜨길래 뭔지 한참 몰랐는데 이것으로 해결하게 됐습니다.
체계적인 메뉴 구성 많이 배우고 갑니다
도움이 되셨다니 다행입니다.
다음회의 연수가 저 주제입니다. 물론 웹초보님의 목차를 인용하다보니 저 부분이 교수님의 눈에 띄게 된 것이구요… 누구나 관심가질
부분일텐데요…
즉 최근 포스팅으로 홈이 구성되지 않고 특정페이지(정적)나 (과거의)특정 포스트를 일관되게 보여주는 방식이라고 할까요.
1. 아마 템플릿마다 특징이 있을 거라 생각합니다.
2. 화면에 보이는 main page 부분에 html이나 php를 사용하여 직접 첫화면을 수정하는 방법도 있을 거라 생각합니다.(단지 추측입니다^^)
첫화면 레이아웃을 정적인 홈페이지 형태로 구현하기 위한 방법과 테마수정을 위한 간단한 php언어와 tag를 알수있었으면 합니다.
위의 글에 답변해주신 것처럼 wordpress.org와 같이 첫페이지의 어느 정도의 고정형태, 또 각 메뉴에서도 비슷한 정적 페이지가 보입니다.
전문적인 수정을 위한 연수가 아니구요. 이러이러한 구조로 정적인 웹페이지를 구현할 수가 있고, 간단한 php 언어로 이렇게 수정할 수 있다 정도입니다. 즉 구조와 언어를 맛보는 정도입니다.
어려운 질문인줄 압니다.
죄송한 생각을 하면서 계속 글을 남깁니다.
또열심히님 말씀대로 어떤 테마들은 대문페이지를 지원하기도 합니다. 만약 지원하지 않는다면 워드프레스에서 기본적으로 제공하는 front page 기능을 이용하시면 됩니다. 물론 헤더나 사이드바등의 레이아웃은 수정할 수는 없지만, 컨텐츠 영역은 html을 사용해서 꾸밀 수 있습니다. php는 저도 잘 모르기도 하고 답변으로는 내용이 길어질 것 같아서 우선 대문페이지 만드는 방법만 포스팅 했습니다.
http://wordpressblog.co.kr/wordpress-tutorial/front-page/
그리고 아래는 템플릿 파일들에 관한 워드프레스 사이트의 주소입니다.
http://codex.wordpress.org/Template_Hierarchy
정말 놀라운 정보 이군요!! 이 포스팅을 해주신 분 정말 고맙습니다