<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>overfloweblog &#187; fancy url</title>
	<atom:link href="http://overfloweb.com/blog/index.php/archives/tag/fancy-url/feed" rel="self" type="application/rss+xml" />
	<link>http://overfloweb.com/blog</link>
	<description>are you driving me crazy?</description>
	<lastBuildDate>Sun, 13 May 2012 16:59:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Fancy URL (Search Engine-Friendly URLs)</title>
		<link>http://overfloweb.com/blog/index.php/archives/4</link>
		<comments>http://overfloweb.com/blog/index.php/archives/4#comments</comments>
		<pubDate>Mon, 31 Mar 2008 15:03:37 +0000</pubDate>
		<dc:creator>overflow</dc:creator>
				<category><![CDATA[fancy url]]></category>
		<category><![CDATA[serverScript]]></category>

		<guid isPermaLink="false">http://overflow.ivyro.net/?p=4</guid>
		<description><![CDATA[http://www.webmasterbase.com/article.php/999/12   아파치를 이용해서 위와 같은 url로 스크립트를 실행시킬 수 있는 3가지 방법에 대해 알아보겠습니다.   1. 아파치의 look back 기능을 이용한다. 아파치는 기본적으로 사용자가 요청한 리소스가 없을 경우 backward 방식으로 url을 탐색합니다. &#8220;http://www.webmasterbase.com/article.php/999/12&#8221; URL의 경우 12라는 디렉토리나 파일이 없으면 다시 999라는 디렉토리나 파일을 찾고 그것도 없으면 article.php를 실행하게 되죠.   따라서 &#8220;http://www.webmasterbase.com/article.php?article=999&#38;number=12&#8221; 와 같은 [...]]]></description>
			<content:encoded><![CDATA[<p><a class="con_link" href="http://www.webmasterbase.com/article.php/999/12" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.webmasterbase.com/article.php/999/12</span></span></a></p>
<p> </p>
<p>아파치를 이용해서 위와 같은 url로 스크립트를 실행시킬 수 있는<br />
3가지 방법에 대해 알아보겠습니다.</p>
<p> </p>
<p><span style="background-color: #ffdaed;">1. 아파치의 </span><span style="background-color: #ffdaed;">look back 기능을 이용한다.</span><br />
아파치는 기본적으로 사용자가 요청한 리소스가 없을 경우 backward 방식으로 url을 탐색합니다.<br />
&#8220;<a class="con_link" href="http://www.webmasterbase.com/article.php/999/12" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.webmasterbase.com/article.php/999/12</span></span></a>&#8221; URL의 경우 12라는 디렉토리나 파일이</p>
<p>없으면 다시 999라는 디렉토리나 파일을 찾고 그것도 없으면 article.php를 실행하게 되죠.</p>
<p> </p>
<p>따라서 &#8220;<a class="con_link" href="http://www.webmasterbase.com/article.php?article=999&amp;number=12" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.webmasterbase.com/article.php?article=999&amp;number=12</span></span></a>&#8221; 와 같은 url을<br />
&#8220;<a class="con_link" href="http://www.webmasterbase.com/article.php/999/12" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.webmasterbase.com/article.php/999/12</span></span></a>&#8221; 처럼 단순하게 바꿀수 있습니다.</p>
<p>이 경우 $_SERVER['PATH_INFO']에서는 &#8220;/999/12&#8243; 라는 문자열이 저장되는데 이것을</p>
<p>article.php에서 원하는 방식으로 파싱하면 됩니다.</p>
<p> </p>
<p>예제)<br />
$uri = explode(&#8220;/&#8221;, $_SERVER['PATH_INFO']));<br />
$article = $uri[1];<br />
$number = $uri[2];</p>
<p> </p>
<p>단점:</p>
<p>검색엔진에 해당페이지(<a class="con_link" href="http://www.webmasterbase.com/article.php/999/12" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.webmasterbase.com/article.php/999/12</span></span></a>)가 등록이 안될</p>
<p>가능성이 있습니다. 참고로, google 에서는 정상적으로 등록이 됩니다.</p>
<p><span style="background-color: #ffdaed;">2. 두번째 방법은 .htaccess 파일을 이용하는 겁니다.<br />
</span>.htaccess 파일내에</p>
<p> </p>
<p><span style="background-color: #e4e4e4;">ErrorDocument 404 /article.php </span></p>
<p> </p>
<p>이렇게 적어 놓으면 아파치가 요청받은 리소스를 찾지 못할경우 에러메세지를 출력하는 대신에<br />
자동으로 /article.php 파일로 리다이렉트를 시켜버리게 됩니다.</p>
<p>그러므로 홈페이지의 루트디렉토리 밑에 article.php 파일을 만들어서 아래와 같이 입력해 주면&#8230;</p>
<p> </p>
<p><span style="background-color: #e4e4e4;">&lt;?php<br />
header(&#8220;HTTP/1.1 200 OK&#8221;);<br />
echo $_SERVER['REQUEST_URI'];<br />
?&gt;</span></p>
<p> </p>
<p><a class="con_link" href="http://www.webmasterbase.com/999/12" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.webmasterbase.com/999/12</span></span></a> 와 같은 문서를 요청받은 아파치는 마찬가지로 12라는</p>
<p>디렉토리 혹은 파일을 찾게 됩니다. 물론 12라는 디렉토리나 파일은 없죠. 그러므로 이때에는</p>
<p>url을 look back 하는게 아닌 .htaccess 파일에 명시해 놓은데로 요청을 /articles.php로</p>
<p>리다이렉트 시키게 됩니다. 이때 header()함수를 이용해서 요청이 성공적으로 처리되었다는</p>
<p>(200 OK) 것을 강제로 브라우저에게 전송해줍니다.</p>
<p> </p>
<p>위 방식을 사용할 때는 $_POST['PATH_INFO'] 변수를 사용할 수 없고 대신에</p>
<p>$_SERVER['REQUEST_URI']을 이용하면 됩니다. 마찬가지로 위 변수안에는 /999/12 이라는</p>
<p>문자열이 저장되게 됩니다. 1번 방법보다 URL이 더 간단해 졌죠?</p>
<p> </p>
<p>단점 : Apache 서버는 위와 같은 형태의 URL 요청을 에러 페이지(article.php)로 보내버리기</p>
<p>때문에 서버의 error logs 가 급격히 증가하게 됩니다.-_-;;;</p>
<p>그리고 article.php에서는 적절한 처리를 해주는 루틴을 추가해줘야겠죠.</p>
<p> </p>
<p><span style="background-color: #ffdaed;">3. 마지막 3번째 방법은 ForceType Directive 를 이용하는겁니다.<br />
</span>ForceType directive는 기본 설정된 MIME 타입을 오버라이드 해버립니다. 즉, html 페이지를</p>
<p>php로 해석하게도 만들 수 있다는거죠. 여기서 사용할 방법은 확장자가 없는 article 파일을</p>
<p>php 파일로 인식하게끔 하는거죠. 이렇게 된다면&#8230;</p>
<p><a class="con_link" href="http://www.webmasterbase.com/article.php/999/12" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.webmasterbase.com/<span style="background-color: #e4e4e4;">article.php</span>/999/12</span></span></a> 형태의 URL을<br />
<a class="con_link" href="http://www.webmasterbase.com/article/999/12" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.webmasterbase.com/<span style="background-color: #e4e4e4;">article</span>/999/12</span></span></a> 와 같이 바꿔줄 수 있게됩니다. 더 보기좋죠?</p>
<p> </p>
<p>2번 방법과 마찬가지로 .htaccess 파일을 손봐주면 됩니다.</p>
<p> </p>
<p><span style="background-color: #e4e4e4;">&lt;Files article&gt;<br />
 ForceType application/x-httpd-php<br />
&lt;/Files&gt;</span></p>
<p> </p>
<p>위와 같이 &#8220;&lt;Files&gt;&#8221; 내에 article 이라는 파일명을 적어주는거죠. 그리고 article이라는 파일을</p>
<p>ForceType directive를 이용해서 php 파일로 인식시키는겁니다.</p>
<p> </p>
<p>단점 : 2번 방법보다 URL이 약간 길어졌습니다.-_-;</p>
<p>총평 :</p>
<p>방법 2와 3의 가장 큰 문제점은 .htaccess 파일을 이용해야 한다는 건데&#8230;<br />
현재 제가 사용중인 cafe24의 경우 .htaccess 파일을 사용하지 못하도록 되어있기 때문에<br />
전혀 도움이 안됐다는&#8230;ㅠㅠ</p>
<p> </p>
<p>그리고 위 방법을 이용하면 개인별 서비스를 제공하는 척 하게끔 만들수가 있게됩니다.</p>
<p>예를 들어 블로그 형태의 URL을 이용할 수 있는거죠.</p>
<p><a class="con_link" href="http://www.raysoda.com/comethunter" target="_blank"><span style="text-decoration: underline;"><span style="color: #0033cc;">http://www.raysoda.com/comethunter</span></span></a></p>
<p> </p>
<p>위와 같이 해줄려면 방법 2를 이용해서 처리해주면 되겠죠?</p>
<p><span style="background-color: #ffdaed;">참고 문헌 : </span><a class="con_link" href="http://www.sitepoint.com/article/search-engine-friendly-urls" target="_blank"><span style="color: #0033cc; background-color: #ffdaed;"><span style="text-decoration: underline;">http://www.sitepoint.com/article/search-engine-friendly-urls</span></span></a></p>
]]></content:encoded>
			<wfw:commentRss>http://overfloweb.com/blog/index.php/archives/4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

