2011-07-28 2 views
1

내 zend 응용 프로그램의 특정 디렉토리에 가상 호스트가 있어야합니다.특정 디렉토리의 Apache 가상 호스트

NameVirtualHost *:80 
<VirtualHost *:80> 
    DocumentRoot "/var/www/cms/public" 
    ServerName persian_literature 
    # This should be omitted in the production environment 
    SetEnv APPLICATION_ENV development 
    <Directory "/var/www/cms/public"> 
     Options Indexes MultiViews FollowSymLinks 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 
:

SetEnv APPLICATION_ENV development 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

가 로컬 호스트에 내가 /etc/apache/httpd-vhosts.conf이 라인을 추가 : 사용자가 www.example.com를 입력하면 정상 문서 루트로 이동해야하지만, 사용자가 www.example.com/cms 탐색 할 때의 .htaccess 파일은 다음과 인이 /var/www/cms/public로 이동한다

이제 http://localhost//var/www/cms/public으로 가고 모든 것이 작동합니다. 내 질문에 어떻게 위의 코드를 변경해야합니까 http://localhost/ (그래서 난 다른 응용 프로그램을 사용할 수있는) 일반적인 디렉토리 루트와 강제로 http://localhost/cms 가상 호스트 수 있습니까?

답변

3

가상 호스트는 디렉토리 레벨이 아닌 호스트 이름/도메인 이름 레벨에서 수행됩니다. 당신은 (상징적 어쩌면

+0

이 코드를'apache.conf'에 추가합니다. 이제'http : // localhost/cms /'는 정확한 위치를 가리 키지 만'http : // localhost/cms/member/login'와 같은 다른 응용 프로그램은 작동하지 않습니다. –

+0

당신은 cms에게'/'이 아니라'/ cms'에 현재 살고 있다고 말해야 할 것입니다. –

0

심볼릭 링크를 (이 htaccess로 작동하지 않습니다)는의 .conf 파일에

Alias /cms /var/www/cms/public 

을 넣어 서버에서 다른 디렉토리로 URI/CMS를 가리 키도록 별칭을 사용할 수 있습니다 링크)? 당신은 여전히 ​​입장을해야합니다. 그리고 아파치가 symlink를 따라야하는 config (vhost config, 어쩌면 .htaccess)를 넣어야 할 것이다.