2011-10-15 3 views
0

나는 facebook과 유사한 단면도를 가진 페이지를 창조하는 것을 시도하고있다. 내가 가진 질문은 www.sitename.com/profile.php?username=Username을 URL로 사용하는 사이트 대신 www.sitename.com/Username을 말하고 싶습니다.Facebook과 같은 하위 폴더 : 방법?

후자와 같은 URL을 표시하려면 Username이라는 폴더에 색인 페이지가 있지만 동적으로 수행하고 하위 폴더로 표시하는 방법을 모르겠습니다.

나는 내 주요 언어로 PHP를 사용하고 있습니다.

답변

0

Apache의 mod rewrite을 사용하여 친숙한 URL을 얻을 수 있습니다. 그냥 아파치 설정에서 활성화 및 응용 프로그램의 루트에있을 것이다, .htaccess에 다음 넣어 : 또한

RewriteEngine On 
RewriteRule /(.*)$ /profile.php?username=$1 

, here's 친화적 인 URL에 관한 좋은 찾고 자습서를.

+0

고마워요! 이것은 내가 찾고 있었던 바로 그 것이다! – ntgCleaner

2

mod_rewrite (Apache 용)에는 원하는 것을 구현하는 기능이 있습니다. 그리고 다른 주류 웹 서버도 비슷한 기능을 가지고 있다고 확신합니다.

+0

완벽한, 감사합니다! – ntgCleaner

0

htaccess, http.conf 또는 (IIS를 사용중인 경우) web.config을 사용할 수 있습니다.

나는 htaccess를 사용합니다. 여기에 동적 프로파일을 허용하는 방법의 예는 다음과 같습니다

RewriteEngine On 
RewriteBase/
RewriteRule ^profile\/(.*)$ ./profile.php?profileId=$1 [L,NC,QSA] 

RewriteBase /

./profile.php?profileId=$1 경로가 루트 디렉토리에서 것을 의미한다. 그리고 RegExp 은 profile/1234과 같은 것을 표시 할 것입니다. ./profile.php?profileId=1234

도움이 되길 바랍니다.

+0

'/'가 아닌'/'을 사용해야합니다. 그렇지 않으면 아파치는 'profile'이 현재 디렉토리로 동작하기 때문에'profile/profile.php? ...'를 파일로로드하려고 시도합니다. – animuson

+0

RewriteBase가이를 처리합니다. htaccess가'/'에 있고 따라서'/'가'/ profile /'이 아닌'/'일 경우 – Marshall

+0

문서에 따르면 RewriteBase는 상대 경로에만 적용됩니다 ('/'또는 '. /'또는'../'). '. /'는'/ profile /'인 파일을 찾기 위해 현재 디렉토리를 사용해야 하는지를 구체적으로 질의한다. – animuson

관련 문제