<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[TNF : Tatter Network Foundation forum - [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
	<link rel="self" href="http://forum.tattersite.com/ko/extern.php?action=feed&amp;tid=129&amp;type=atom"/>
	<updated>2007-12-24T16:54:05Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.tattersite.com/ko/viewtopic.php?id=129</id>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=22861#p22861"/>
			<content type="html"><![CDATA[<p>이 부분을 해결했습니다. 오늘자 trunk에 반영되었습니다.</p><p>mod_rewrite 의존도를 최소한으로 줄이고, 걍 전부 서버 인자를 통해서 파싱하도록 했습니다. 주소 해석 루틴의 호환성은 그대로 남겨 놓고 mod_rewrite가 넘겨주는 서버 인자 값을 처리하는 wrapper를 하나 얹었습니다.</p><p>아마 이제 mod_rewrite를 사용만 할 수 있는 곳이면 fastCGI든 아니든 잘 돌아 갈겁니다. <a href="http://dev.textcube.org/changeset/4864">r4864</a> 이후의 리비전에서 안정적으로 동작합니다. 제 서버를 아예 fastCGI 기반으로 엎은 후에 블로그를 돌리고 있는데, 잘 돌아가는군요. <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[inureyes]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=2</uri>
			</author>
			<updated>2007-12-24T16:54:05Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=22861#p22861</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=21844#p21844"/>
			<content type="html"><![CDATA[<p>전부 rewrite.php를 만들어서 받도록 해 봤는데 의외로 골치아픈 부분들이 있습니다. register_global 옵션이 보안상의 문제로 off이기 때문에 모든 입출력이 rewrite.php를 거칠 때 모든 POST와 GET문을 복사해서 넘겨 줘야 하는데, 의외로 로드가 있네요. (갯수제한 없이 while문 돌려주면 사뿐하게 DDoS도 가능해 보입니당)</p><p>그 이외에도 php 파서가 손 댈 필요가 없는 파일들도 (그림이라거나) 전부 한 번씩 파싱되기 때문에, 서버의 CPU가 매우 괴로워합니다. 아무래도 .htaccess를 고치는 방향으로 가야 할 듯...</p><p>덧) rewrite engine disabled mode에서는 fcgi에서 잘 돌아가는군요^^</p>]]></content>
			<author>
				<name><![CDATA[inureyes]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=2</uri>
			</author>
			<updated>2007-10-23T14:00:55Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=21844#p21844</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=3344#p3344"/>
			<content type="html"><![CDATA[<p>요즘 버전업이 뜸하네요. Apache2+FastCGI 설치가 어렵다면,<br />lighttpd 또는 LiteSpeed 웹서버를 설치해보시는건 어떨지요?<br />LiteSpeed는 WordPress.org에서도 추천하는 웹서버죠. (<a href="http://www.litespeedtech.com">http://www.litespeedtech.com</a>)<br />standard 버전 다운 받아서 그냥 시키는대로만 설치하면 LSAPI 모듈 형태의 PHP4가 같이 설치되더군요.<br />(PHP5를 쓰려면 LSAPI 모듈로 새로 컴파일해야 합니다.)<br />이 LSAPI라는 놈은 사실상 FastCGI와 똑같습니다.</p><p>그후 태터툴즈 설치해보시면, 태터 프로그램의 URL 처리의 문제점과<br />&quot;Apache + mod_php 라는게 특수한(!) 환경이구나&quot; 하는 것을 느끼실 수 있을 것입니다.<br />위에 말씀드린대로 suri.php 에서 REDIRECT_URL 대신 QUERY_STRING 이나 REQUEST_URI 를 사용하면 상당부분 해결됩니다.<br />그리고 domain.comi/ID/owner 같은 주소를 처리하는 문제만 해결하면 될 것 같네요.</p><br /><br /><p>----<br />사족인데요. <br />태터 설치법에 보면 chmod 777 을 해라는 이야기가 많습니다.<br />초보자를 위해 이렇게 한다고 쳐도.... 전문가를 위한 설치법을 따로 준비해주시는게 좋겠어요.<br />chmod 777은 안전하니 않으니 attach 등의 디렉토리를 웹상에서 접근할 수 없는 곳에 만들고<br />웹서버가 쓸 수 있는 권한을 주라(chown www attach)는 등의 설명문 말이죠.</p><p>아직 태터를 한번도 사용해보지 못했는데, 벌써 &#039;익숙한 사용자&#039;가 되어버렸군요. ;-)</p>]]></content>
			<author>
				<name><![CDATA[우수한]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=54</uri>
			</author>
			<updated>2006-06-03T07:50:50Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=3344#p3344</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1653#p1653"/>
			<content type="html"><![CDATA[<p><strong>[1] FastCGI 설치</strong></p><p>말씀하신 것처럼 몇년전에는 FastCGI에서 메모리 릭이 발생하는 경우가 있었으나, 지금은 그런 문제가 드물며 특히 php5에 와서는 fastcgi 라이브러리의 수정본을 내포하고 있는 것으로 압니다. </p><p>제 경우에는 kldp.org 설명과 달리 FreeBSD 포트에 있는 것으로 설치했구요. php5 포트에서 make WITH_REDIRECT=yes WITH_DISCARD=yes WITH_FASTCGI=yes WITH_PATHINFO=yes install 해주는 것으로 끝나기 때문에 컴파일하는데서 에러가 발생하지는 않았습니다.<br />php를 컴파일할때 아파치용 옵션인 –with-apxs, –with-apxs2 옵션은 제거되어야 하고, –enable-fastcgi –enable-discard-path –enable-force-cgi-redirect 옵션이 추가되어야 하는 것으로 압니다. </p><p>제 경우에는 php 컴파일 이후 apache와 결합해 php-fastcgi 데몬을 띄우는 부분에서 조금 애를 먹었던 기억이 있습니다. (어설프게나마 제가 메모해둔 문서는 <a href="http://jaju.net/wiki/httpd/fastcgi_php,">http://jaju.net/wiki/httpd/fastcgi_php,</a> <a href="http://jaju.net/wiki/php/fastcgi">http://jaju.net/wiki/php/fastcgi</a> 에 있으니 참고해보세요.)</p><p><strong>[2] REQUEST_URI vs REDIRECT_URL </strong></p><p>페이지가 넘어가지 않는 문제 등 일부에서 작동하지 않는 문제가 정확히 어떤 문제인지 살펴보지 않았습니다만, <br />만일 서버 환경에 따라 REDIRECT_URL이 각기 다르게 나타나는 것이라면<br />그것이 사용자로부터 입력받은 URI인지 아니면 RewriteRule을 거쳐 바뀐 URI 인지를 규명해야겠군요.<br />(CGI 1.1 스펙에서 QUERY_STRING, SCRIPT_NAME 만 지원하므로 SCRIPT_NAME 을 써야하는지도... <img src="http://forum.tattersite.com/ko/img/smilies/neutral.png" width="15" height="15" alt="neutral" />)<br />아울러 URL을 인코딩, 디코딩하는 부분 역시 일관성있게 (suri.php를 만들어서 함수화한 것과 마찬가지로) 처리해야 하지 않나 싶네요.</p>]]></content>
			<author>
				<name><![CDATA[우수한]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=54</uri>
			</author>
			<updated>2006-05-09T01:09:40Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1653#p1653</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1634#p1634"/>
			<content type="html"><![CDATA[<p>php5를 컴파일해서 cgi로 실행하기... 실패했습니다. ;;;</p><p>모듈에 fcgi까지는 띄웠으나 php5 컴파일시 원인모를 에러가 나는군요;;</p>]]></content>
			<author>
				<name><![CDATA[inureyes]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=2</uri>
			</author>
			<updated>2006-05-08T14:24:50Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1634#p1634</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1624#p1624"/>
			<content type="html"><![CDATA[<p>페이지가 안넘어가는 문제는 <a href="http://www.tattertools.com/ko/forum/viewtopic.php?pid=978#p978">http://www.tattertools.com/ko/forum/vie … d=978#p978</a> 에 해결책을 써놨습니다. <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /><br />다만 다른 문제가 있지 않을까 걱정이군요.;;</p>]]></content>
			<author>
				<name><![CDATA[Peris]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=40</uri>
			</author>
			<updated>2006-05-08T12:43:44Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1624#p1624</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1621#p1621"/>
			<content type="html"><![CDATA[<p>제 서버에 fastCGI와 php모듈 설치해보는 중입니다.<br />설치 후 결과를 말씀드리겠습니다 <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /></p>]]></content>
			<author>
				<name><![CDATA[inureyes]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=2</uri>
			</author>
			<updated>2006-05-08T10:51:24Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1621#p1621</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1620#p1620"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>우수한 작성:</cite><blockquote><p>RedirectRule 문제만 어떻게 해결되면 써보겠는데, 쉽지 않네요.<br />abc/owner 입력 -&gt; blog/owner/index.php로 전환 -&gt; abc/ 위치에서 blog/owner/index.php 를 검색 -&gt; 에러.<br />이런 수순인 것 같습니다.<br />php 환경설정 중 cgi.fix_pathinfo, cgi.force_redirect 등의 옵션이랑 관계가 있는건지 잘 모르겠군요.</p><p>그리고 $_SERVER[&#039;REDIRECT_URL&#039;]) 을 $_SERVER[&#039;REQUEST_URI&#039;])로 바꾸는 것이<br />unix기반의 apache에선 안돌아간다는 것은 좀 납득이 되지 않네요.<br />지금 제가 사용하고 있는 서버가 FreeBSD (unix계열) 이거든요. ^^;<br />php를 아파치 모듈이 아닌 <a href="http://wiki.kldp.org/wiki.php/PHPWithFastCGI">FastCGI 방식으로 설치</a>했을 뿐이랍니다.</p></blockquote></div><p>제 주위의 모든 apache모듈을 통한 php 서버에서는 돌아가지 않습니다.<br />(프비와 데비안 리눅스와 우분투가 있군요.)<br />전에 commit했을 때에도 페이지 넘김 안된다고 한 번 난리가 났었죠.</p><p>그나저나 FastCGI방식은 예전에는 시간이 흐르면 메모리를 추가로 계속 잡아먹는 유명한 버그가 있었는데, 지금은 괜찮아졌나 보네요 <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /> 그것때문에 안정성이 생명인 저희 분야에서는 쳐다보지도 못했었죠. 기술 참 빨리 발전합니다...</p>]]></content>
			<author>
				<name><![CDATA[inureyes]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=2</uri>
			</author>
			<updated>2006-05-08T10:40:15Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1620#p1620</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1619#p1619"/>
			<content type="html"><![CDATA[<p>RedirectRule 문제만 어떻게 해결되면 써보겠는데, 쉽지 않네요.<br />abc/owner 입력 -&gt; blog/owner/index.php로 전환 -&gt; abc/ 위치에서 blog/owner/index.php 를 검색 -&gt; 에러.<br />이런 수순인 것 같습니다.<br />php 환경설정 중 cgi.fix_pathinfo, cgi.force_redirect 등의 옵션이랑 관계가 있는건지 잘 모르겠군요.</p><p>그리고 $_SERVER[&#039;REDIRECT_URL&#039;]) 을 $_SERVER[&#039;REQUEST_URI&#039;])로 바꾸는 것이<br />unix기반의 apache에선 안돌아간다는 것은 좀 납득이 되지 않네요.<br />지금 제가 사용하고 있는 서버가 FreeBSD (unix계열) 이거든요. ^^;<br />php를 아파치 모듈이 아닌 <a href="http://wiki.kldp.org/wiki.php/PHPWithFastCGI">FastCGI 방식으로 설치</a>했을 뿐이랍니다.</p>]]></content>
			<author>
				<name><![CDATA[우수한]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=54</uri>
			</author>
			<updated>2006-05-08T10:07:13Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1619#p1619</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1560#p1560"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>우수한 작성:</cite><blockquote><p>오랜만에 문제를 다시 살펴봤는데요.<br />현재 실험본 trunk에 있는 파일을 보니<br />위에 지적한 것을 반영하여, suri.php를 따로 만들어두셨더군요. <br />덕분에 프로그램 수정이 좀더 수월해졌네요.</p></blockquote></div><p>원래 소스본에는 처음부터 분리되어 설계되어 있었습니다.<br />(배포본과 소스의 차이에 대해서는 게시판 검색을 해 보시면 됩니다 <img src="http://forum.tattersite.com/ko/img/smilies/smile.png" width="15" height="15" alt="smile" /> )</p><div class="quotebox"><cite>우수한 작성:</cite><blockquote><p>1. suri.php 맨앞부분에 주석으로 넣어두신 부분이 있는데요.<br />$url = isset($_SERVER[&#039;REDIRECT_URL&#039;]) ? $_SERVER[&#039;REDIRECT_URL&#039;] : $_SERVER[&#039;SCRIPT_NAME&#039;];<br />대신에 그 주석처리한 부분<br />$url = isset($_SERVER[&#039;REQUEST_URI&#039;]) ? urldecode($_SERVER[&#039;REQUEST_URI&#039;]) : $_SERVER[&#039;SCRIPT_NAME&#039;];<br />이 맞는 것 같습니다.</p></blockquote></div><p>말씀하신 대로 고치면 unix기반의 apache에선 안돌아 가는 경우들이 생깁니다. -<br />특히 페이지 번호를 선택해서 넘길 때 작동하지 않습니다.</p><p>참고해주세요 <img src="http://forum.tattersite.com/ko/img/smilies/big_smile.png" width="15" height="15" alt="big_smile" /></p>]]></content>
			<author>
				<name><![CDATA[inureyes]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=2</uri>
			</author>
			<updated>2006-05-07T14:58:43Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1560#p1560</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1552#p1552"/>
			<content type="html"><![CDATA[<div class="quotebox"><cite>우수한 작성:</cite><blockquote><p>rewriteRule ^(.*)$ tt.php?$1 [L,QSA]</p></blockquote></div><p>이렇게 써놓고 환경변수로 처리하는 것도 괜찮을 것 같군요.<br />그렇게 할 경우 IIS로 포팅하기도 보다 쉬워질 겁니다.</p><p>제가 IIS에서 QSA 옵션에 해당하는 내장 옵션을 켜봤었는데 잘 안 되더군요. 제대로 아시는 분은 도움 주시면 좋겠습니다.</p><p>C:\Inetpub\AdminScripts&gt; Cscript.exe adsutil.vbs SET /W3SVC/AllowPathInfoForScriptMappings TRUE</p><p>뭐 이런 식으로 했었던 것 같은데.. 잘 안 되더군요.</p>]]></content>
			<author>
				<name><![CDATA[daybreaker]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=11</uri>
			</author>
			<updated>2006-05-07T10:55:50Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1552#p1552</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[RSS 답글: [URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=1550#p1550"/>
			<content type="html"><![CDATA[<p>오랜만에 문제를 다시 살펴봤는데요.<br />현재 실험본 trunk에 있는 파일을 보니<br />위에 지적한 것을 반영하여, suri.php를 따로 만들어두셨더군요. <br />덕분에 프로그램 수정이 좀더 수월해졌네요.<br />고칠 부분은 다음과 같습니다.</p><p>1. suri.php 맨앞부분에 주석으로 넣어두신 부분이 있는데요.<br />$url = isset($_SERVER[&#039;REDIRECT_URL&#039;]) ? $_SERVER[&#039;REDIRECT_URL&#039;] : $_SERVER[&#039;SCRIPT_NAME&#039;]; <br />대신에 그 주석처리한 부분<br />$url = isset($_SERVER[&#039;REQUEST_URI&#039;]) ? urldecode($_SERVER[&#039;REQUEST_URI&#039;]) : $_SERVER[&#039;SCRIPT_NAME&#039;];<br />이 맞는 것 같습니다.</p><p>2. 루트에 생성되는 .htaccess 파일을 보면<br />맨마지막 3줄이 문제가 됩니다. (서버 환경에 따라 정상적으로 작동하지 않는건지...)<br />가령 맨마지막줄의 경우<br />RewriteRule ^[[:alnum:]]+/+(.+)$ blog/$1/index.php [E=SURI:1,L]<br />라고 되어있는데요.<br />abc/owner/entry 입력 -&gt; blog/owner/entry/index.php 로 이동. 그러나 희한하게도 해당 파일이 없다고 판단함. -&gt; 만약 ,L 옵션을 뺄 경우 owner/entry/index.php/owner/entry 로 이동 -&gt; 진짜로 파일 없음. 에러 발생.<br />이런 식으로 redirect 가 제대로 작동하지 않는 문제가 있습니다. (이리저리 해보니 어쩌다 되는 경우가 있던데, 좀더 테스트해보고 고쳐쓰겠습니다.)</p><p>여하튼 .htaccess 룰은 윗 글에서 말한 것처럼 좀 단순화되었으면 좋겠습니다.</p><p>아, 그리고 여담인데 개발하시는 분들은 display_errors=On으로 놓고 작업하시길...</p>]]></content>
			<author>
				<name><![CDATA[우수한]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=54</uri>
			</author>
			<updated>2006-05-07T10:08:09Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=1550#p1550</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[[URL Rewrite관련] CGI 환경을 지원하지 못하는 문제]]></title>
			<link rel="alternate" href="http://forum.tattersite.com/ko/viewtopic.php?pid=678#p678"/>
			<content type="html"><![CDATA[<p><a href="http://www.tattertools.com/bbs/view.php?id=tip&amp;no=160">http://www.tattertools.com/bbs/view.php … amp;no=160</a><br /><a href="http://www.tattertools.com/bbs/view.php?id=tip&amp;no=143">http://www.tattertools.com/bbs/view.php … amp;no=143</a></p><p>일전에 태터 게시판에 썼던 내용인데,<br />이곳 게시판에 버그를 써야만 ticket 등록이 된다고 해서 올립니다.</p><p>현재 태터툴즈는 Apache + mod_php 환경에서만 작동하며 php를 CGI로 가동할 경우에는 작동하지 않습니다.<br />(이상하게 국내에서는 mod_php 보다 더 나은 퍼포먼스를 보여주는 FastCGI 방식을 잘 사용하지 않더군요.<br />다들 메모리가 넉넉한 서버를 쓰시나봐요.)</p><p>에러의 원인은 .htaccess 의 RedirectRule 과 태터 프로그램 내의 $_SERVER[&#039;REDIRCET_URL&#039;] 입니다.</p><br /><br /><p>[1] 태터 프로그램의 문제</p><p>일단 path 방식의 멀티유저로 설치했다고 전제합니다.<br />blog/index.php 881행을 보면<br />$url=isset($_SERVER[&#039;REDIRECT_URL&#039;])?$_SERVER[&#039;REDIRECT_URL&#039;]:$_SERVER[&#039;SCRIPT_NAME&#039;];<br />이라는 문장이 있습니다.<br />여기뿐만 아니라 이런 식의 문장은 태터툴즈 전체에 걸쳐 무려 162군데에나 존재합니다. (함수로 만들어두는게 나을 듯 싶을 정도.)<br />아무튼 여기서 이 $url을 해석하여 어느 블로그인지를 찾게 되는데요.<br />원래 개발자가 의도했던 $url 값은 /user/123 처럼 유저명을 포함한 주소일텐데<br />정작 CGI환경에서는 $_SERVER[&#039;REDIRECT_URL&#039;]에는 indxe.php, /blog/owner/index.php 따위의 실행파일 주소가 들어가기 때문에<br />$url을 아무리 해석한다고 해도 원하는 결과를 얻을 수 없습니다.<br />$url=$_SERVER[&#039;REQUEST_URI&#039;]; 또는<br />$url=isset($_SERVER[&#039;REDIRECT_QUERY_STRING&#039;])?$_SERVER[&#039;REDIRECT_QUERY_STRING&#039;]:$_SERVER[&#039;QUERY_STRING&#039;];<br />와 같은 식으로 바꾸어야만 /blog/index.php 가 제대로 작동하게 됩니다.</p><br /><br /><p>[2] .htaccess 의 문제</p><p>http://도메인/유저명/owner 와 같은 주소를 입력하면<br />No input file specified. 라는 에러 메시지가 뜹니다.<br />이 에러메시지는 .htaccess 에서 RedirectRule을 제대로 정의하지 못했다는 것을 의미합니다.</p><p>즉 /blog/owner/index.php 를 찾는 대신 /blog/유저명/owner/index.php를 찾으려고 하기 때문에 발생하는 것입니다.<br />.htaccess 의 맨마지막줄 RedirectRule이 그렇게 정의되어있습니다.</p><br /><br /><p>[3] 제안하는 해결책</p><p>위의 2가지 문제를 각각 처리한다고 하여, 태터툴즈가 CGI 환경에서 제대로 작동할지는 의문입니다.<br />자세히 살펴보진 않았지만, URL을 해석하는 부분이 태터 프로그램 곳곳에 있는 듯 하고<br />그렇다면 각 PHP 페이지에서 $url 을 해석하고 redirect 시키는 것을 일일이 확인해야 할 것이기 때문입니다.</p><p>보다 손쉬운 방법은&nbsp; .htaccess 룰을 단순화시키고, 각 페이지에 들어있는 $url 해석부분을 제거하는 것입니다.<br />즉 .htaccess 파일 내용으로<br />&nbsp; rewriteCond %{REQUEST_FILENAME} !-f<br />&nbsp; rewriteCond %{REQUEST_FILENAME} !-d<br />&nbsp; rewriteRule ^(.*)$ tt.php?$1 [L,QSA]<br />이라고만 해두고<br />tt.php 파일 내에서 $_SERVER[&#039;REQUEST_URI&#039;]를 해석하게끔 함으로써<br />.htaccess 가 하던 역할을 tt.php 로 떠넘기는 것입니다.<br />(그외의 php 페이지에서는 $url을 분석해서 redirect 하는 부분이 필요없겠죠.)</p><p>이와 같이 했을때, http://도메인/blog/123 과 같은 주소를 입력할 경우<br />$_SERVER 환경변수는 다음과 같습니다.<br />&nbsp; &nbsp; [REQUEST_URI] =&gt; /blog/123<br />&nbsp; &nbsp; [QUERY_STRING] =&gt; /blog/123<br />&nbsp; &nbsp; [REDIRECT_QUERY_STRING] =&gt; blog/123<br />&nbsp; &nbsp; [REDIRECT_URL] =&gt; /tt.php<br />&nbsp; &nbsp; [SCRIPT_NAME] =&gt; /tt.php<br />&nbsp; &nbsp; [SCRIPT_FILENAME] =&gt; /실제디렉토리/tt.php<br />이를 참조하여 tt.php 를 작성하면 될 것 같습니다.</p><p>(개발자님께서는 mod_rewrite를 사용하지 말자는 뜻으로 오해하시는거 같던데,<br />그런 뜻이 아니라 URL 처리 방식의 문제를 지적하는 것입니다.) </p><p>더군다나 이렇게 할 경우, mod_rewrite를 사용하지 못하는 경우일지라도<br />tt.php 대신 index.php 를 사용하면<br />&quot;/원하는URL&quot; 대신 &quot;/?원하는URL&quot; 과 같은 주소를 사용할 수 있습니다.</p><br /><br /><p>[4] IIS의 경우</p><p>ISAPI_rewrite (http://www.isapirewrite.com/, 유료버전) 라든가<br />Ionic’s Isapi Rewrite Filter (<a href="http://cheeso.members.winisp.net/dl/IonicIsapiRewriter.zip">http://cheeso.members.winisp.net/dl/Ion … writer.zip</a>)<br /><a href="http://www.qwerksoft.com/products/iisrewrite/">http://www.qwerksoft.com/products/iisrewrite/</a><br /><a href="http://www.motobit.com/help/url-replacer-rewriter/iis-mod-rewrite.asp">http://www.motobit.com/help/url-replace … ewrite.asp</a><br />등의 여러 사이트를 통해<br />mod_rewrite가 IIS에서 작동하게끔 할 수 있습니다.<br />위에서 지적한 것과 마찬가지로 태터툴즈 프로그램과 RewriteRule은 변경되어야 할 것입니다.</p>]]></content>
			<author>
				<name><![CDATA[우수한]]></name>
				<uri>http://forum.tattersite.com/ko/profile.php?id=54</uri>
			</author>
			<updated>2006-04-19T00:09:20Z</updated>
			<id>http://forum.tattersite.com/ko/viewtopic.php?pid=678#p678</id>
		</entry>
</feed>
