2011-12-12 2 views
3

현재 로컬 컴퓨터에 응용 프로그램을 구축 중입니다. 응용 프로그램은 /www/projects/mycustomproject/에 있으며 액세스 속도에는 자체 개인 도메인이 있습니다 (예 : mycustomproject.com). 로컬 네트워크를 통해 Apache-PHP-MySQL을 사용할 수있게 만들었으므로 아무도 192.168.1.80 인 IP 주소로 내 프로젝트에 액세스 할 수 있으며 /www/에 연결됩니다. 이 mycustomproject.com에 대한 기본 설정으로, 문제를 와서 여기 192.168.1.80/projects/mycustomproject/을 입력 할 필요가 응용 프로그램에 액세스하려면입니다 :호스트 이름이나 IP 주소를 기반으로 RewriteBase를 동적으로 변경하는 방법은 무엇입니까?

RewriteEngine on 
RewriteBase/

는 것으로는 생각 지 주소 IP에 의해 응용 프로그램에 액세스하려면

RewriteEngine on 
RewriteBase /projects/mycustomproject/ 

질문을 규칙을 다음과 같이 정의 할 수있는 방법은 무엇입니까 :

if REMOTE_ADDR == 192.168.* 
    RewriteBase /projects/mycustomproject/ 
else if HOSTNAME == 'mycustomproject.com' 
    RewriteBase/
etc. 

아마도 다른 사용자 정의 조건이있을 수 있습니다 호스트 이름 또는 IP 주소와 IF/ELSE 문이 더 바람직합니다. RewriteCond

+0

나는 당신이 달성하려고하는지 이해하지 못하는 것 같아요. IP + 경로 또는 호스트 이름을 통해 사이트에 동시에 액세스 할 수있게하려고합니까? 왜? 문제는 나에게 들리지만 직접적인 해결책은 여기에 설명되어 있습니다. http://stackoverflow.com/questions/2045897/with-mod-rewrite-can-i-specify-a-rewritebase-within-a-rewritecond – gregmac

+0

죄송합니다. 분명치 않다면 로컬 네트워크와 로컬 호스트에서 작동하고 다른 사전 설정을 적용하도록 응용 프로그램을 만들고 싶습니다 (네트워크를 통해 액세스 할 수 있으므로 라우터와 방화벽에 대해 걱정할 필요가 없습니다). 그것의 또 다른 용도는 로컬 환경과 라이브 서버를위한 하나의 .htaccess 파일이 될 수 있습니다. – Nazariy

답변

0

왜 mycustomproject를 자체적으로 virtual host으로 설정하지 않으시겠습니까? 그런 다음 local.mycustomproject.com에 대한 로컬 DNS 또는 HOSTS 파일 항목을 만들 수 있습니다

# Listen for virtual host requests on all IP addresses 
NameVirtualHost *:80 

# default root for non-matched ServerName 
DocumentRoot /www/ 

<VirtualHost *:80> 
    ServerName local.mycustomproject.com 
    DocumentRoot /www/projects/mycustomproject/ 
</VirtualHost> 

:

같은 호스트를 설정합니다.

이렇게하면 로컬로 원하는만큼 많은 프로젝트를 호스트 할 수 있습니다 (더 많은 부분을 <VirtualHost> 섹션 추가). 실제 제작 환경을 매우 자세히 반영합니다.

"실제"도메인 이름을 사용하려면 "로컬"을 제거하십시오. 내보기에서. 또한 예를 설정하는 ServerAlias을 사용할 수 있습니다

, ServerAlias www.local.mycustomproject.com

+0

VirtualHost 설정이 있고 mycustomproject.com에 연결되어 있고 예상대로 작동하고 있습니다. 문제는 .htaccess RewriteBase에 있으며 IP 주소가 아닌 도메인에서만 작동하도록 구성되어 있습니다. 네트워크를 통해 액세스 할 수 있다고 가정하고 다른 RewriteBase에 연결해야합니다. – Nazariy

관련 문제