2011-03-01 2 views
0

URL에서 동적 하위 도메인을 사용해야합니다. 내 PHP 응용 프로그램에서 사용자 계정을 엽니 다.PHP에서 HTACCESS 파일을 통해 동적 URL을 얻는 방법은 무엇입니까?

http://example.dev/app/section/account_name=ram 

나의 현재 도메인이

내 요구 사항입니다 example.dev됩니다

로그인 화면에 대한 나의 URL은 로그인 한 후

http://example.dev/app/login 

될 것입니다, 사용자는 다음 섹션으로 이동합니다 도메인 이름에 계정 이름을 가져올 수 있습니다. 내 계정 이름이 다르 수단 인 경우 내 URL이 유사하게 다음

http://ram.exmaple.dev/app/section 

같이해야한다, 내 URL 내가이의 .htaccess를 사용 가능하다 알이

http://sundar.example.dev/app/section 

같이해야한다. 나는이 시도하지만 난 그것을 정확하게 얻을 수 아니다

한다 RewriteCond % {HTTP_HOST}^([AZ -] +). (. *) example.dev $ [NC]

RewriteRule의 $/응용 프로그램/섹션 /? account_name = % 1 [QSA]

위 내용이 맞습니까?

중요 사항 : htaccess의 끝에서 하나의 컨트롤러 파일을 호출해야합니다.

한다 RewriteRule^(. *)는 $ example_controller.php

답변

1

난 당신이 모든 example_controller.php에는 cahnge을 싶지 이해합니다.

PHP는 원본 URL에 $ _SERVER [ "REDIRECT_URL"]을 액세스합니다. "last but one"주소가 아닌 원래 요청 주소가 포함됩니다.

제가 생각할 수있는 유일한 해결책은 리버스 프록시입니다. .htaccess을 사용하여 자신의 호스트에 대한 프록시 요청 ([P] 지시어 사용)을 원하는 URL에 만들 수 있습니다. 이렇게하면 PHP는 해당 URL을 REDIRECT_URL으로 보게됩니다. 요청의 원래 URL이기 때문입니다.

RewriteCond %{HTTP_HOST} ^([a-z-]+).example.dev$ [NC] 
RewriteRule (.*)$ http://example.dev/app/section/?account_name=%1[PQSA] 

RewriteRule ^(.*)$ example_controller.php 

물론 mod_proxy를 사용하도록 설정해야합니다. P 및 QSA 지시문이 어떻게 작동하는지 잘 모르겠습니다. 시도 해보십시오.

+0

이 프록시 요청에 대한 예를 들려 줄 수 있습니까? – mosivagan

+0

네, 하나 추가했습니다 (테스트하지 않음). – vbence