2011-11-18 4 views
1

URL에서 이름을 가져올 수있는 단일 PHP 파일로 다른 URL 경로를 리디렉션 할 수 있는지 알고 싶습니다. 내가 www.example.com/username 또는 www.example.com/username2 또는 www.example.com/username3URL 경로가 단일 PHP 파일로 리디렉션 됨

이있는 경우

나는 그것이 username.php 파일로 재 지정하려는 즉, 어떤 그럼 내가 할 수있는 URL에서 사용자 이름을 가져 와서 데이터베이스에서 정보를로드하십시오.

아무도 비슷한 것을 할 수있는 방법에 대한 아이디어가 없습니다. tumblr 당신이 URL에 사용자 이름을 입력하고 블로그를로드 할 수있는 것과 비슷한 것을하십시오.

+0

URL 재 작성을 할 수 있습니다. –

+0

위의 사람이 말했듯이, 다시 쓰기를 사용하여 수행 할 수 있습니다. 이것은 특정 웹 서버가 될 것이므로 어떤 웹 서버를 사용하고 있습니까? – Corbin

+0

아파치 서버를 사용하고 있습니다. htaccess 파일에 넣으시겠습니까? – Jason

답변

2

! Apache mod rewrite을 확인하십시오. 나는이 작동 확신

RewriteEngine On 
RewriteRule ^/username(.*) /username.php?user=username$1 [QSA,L] 

:처럼 내용

, 당신이 원하는 같은 재 작성 규칙이 보일 수 있습니다. 서버의 mod_rewrite를 활성화하십시오.

+0

감사가 가지고있는 경우 문제를 볼 수있는 실제 PHP 파일이 필요합니다 (. *)? RewriteRule의 페이지에서 옵션 + FollowSymLinks를 한다 RewriteEngine을 index.php를 사용자 = 사용자 이름 $ 1 [QSA, L] 의미 : www.example.co.kr/page - 리디렉션 됨 ----------- RewriteRule^page /(.*) /index.php?username=$1 - QSA, L] - www.example.com/을 가져옵니다. 페이지/사용자 이름 – Jason

+0

을위한 작업 장소를 가능 – Jason

+0

완벽 (귀하의 의견에 귀하의 솔루션이 정확히 요구하지 않은 경우에도 제 대답이 올바른 방향으로가는 데 도움이되었습니다, 가장 중요합니다;)) –

0

u는 그와 www.example.com/index.php?username=username1 로 리디렉션됩니다 www.example.com/page/username 웹 서버를 열고 자 할 때

가 실제로는 재 작성 엔진

www.example.com/index.php?username=username1 
www.example.com/index.php?username=username2 
www.example.com/index.php?username=username3 

같은 페이지입니다 각 사용자에게 페이지를 제공 할 수 있습니다 그들은 할 수있다 이런 식으로 접근 할 수 있습니다.

www.example.com/page/username 
www.example.com/page/username2 
www.example.com/page/username3 

htaccess로는 URL 재 작성 덕분에 가능의 예 물론

Options +FollowSymLinks 
RewriteEngine On 
RewriteRule ^page/(.*) /index.php?username=$1 [QSA,L] 
+0

아, 이해합니다. 도와 줘서 고마워. 내가 잘하면 알려주지. – Jason

+0

.htaccess 파일에 다음을 넣었다. – Jason

+0

옵션 + FollowSymLinks RewriteEngine On RewriteRule^page /(.*) index.php? username = $ 1 [QSA, L] 하지만 인덱스 파일의 CSS가로드되지 않습니다. 잘못된 것입니까? – Jason

-1

예, 이것을 FrontController 패턴이라고하며 일반적으로 다시 쓰기 규칙을 사용합니다. 아파치에 대한 약간 다른 방법의 예는 다음과 같습니다

<VirtualHost *:80> 
    ServerName quickstart.local 
    DocumentRoot /path/to/quickstart/public 

    SetEnv APPLICATION_ENV "development" 

    <Directory /path/to/quickstart/public> 
     DirectoryIndex index.php 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

이 사람은 당신이 FrontController Pattern의 실제 예를 찾아 Zend Framework Manual에서 가져옵니다. 기본적으로 모든 요청은 하나의 파일 (이 예제에서는 index.php)로 보내지고 거기에서 처리됩니다. 대개 다른 컨트롤러로 요청을 라우팅합니다.

+0

어떻게 작동합니까? –

+0

좋은 지적, 그 정보를 추가했습니다. – Lars

+0

제공된 구성에 따라 어떻게 작동합니까? 어떤 라인이 사용자의 패턴, 컨트롤러 및 기타 멋진 것들에 대한 라우팅을 담당합니까? –