문제

Zend Framework를 사용하여 웹 응용 프로그램을 구축하고 있으며 응용 프로그램의 "공개"폴더에 앱을 가리켜 야합니다.

그래서 기본적으로 내가 전화 할 때 http://localhost/myapp표시해야합니다 http://localhost/myapp/public/

MyApp라는 가상 호스트 파일을/etc/apache2/sitees-available로 만들었습니다.

    <VirtualHost *:80>
DocumentRoot /var/www/myapp/public/
 <Directory />
  Options FollowSymLinks
  AllowOverride None
 </Directory>
 <Directory /var/www/myapp/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
 </Directory>

</VirtualHost>

그러나 그것은 작동하지 않습니다. 내가 전화 할 때 http : // localhost/myapp, 그것은 앱의 디렉토리 구조를 표시하고, "공개"폴더를 클릭하면 기본적으로 표시하고 싶은 내용을 표시합니다 ... 이전에는 Vhosts를 구성하지 않았으며 자습서와 함께 얻은 한까지는입니다. 그것에 대해.

도움이 되었습니까?

해결책 2

좋아, 나는 어떻게 든 방법을 찾았다 ... 나는 그것이 올바른/가장 좋은 방법이 필요하다고 생각하지 않지만 ...

httpd.conf에서 (Apache2 폴더에서) :

Listen 10089

<VirtualHost *:10089>

    DocumentRoot "/var/www/myapp/public"

    <Directory "/var/www/myapp/public">

        Order allow,deny

        Allow from all

    AllowOverride all

</Directory>

</VirtualHost>

내 앱은 이제 LocalHost를 통해 액세스 할 수 있습니다 : 10089 Apache에서 다시 작성 모드를 활성화 한 후 앱의 루트에 필요한 .htaccess를 추가하여 모든 것을 index.php로 리디렉션합니다 (Zend Framework는 친숙한 URL 탐색 및 그 방식으로 작동 함). :

RewriteEngine on

RewriteRule .* index.php

그리고 공개 폴더 내부의 두 번째 .htaccess 파일은 사람들이 .jpg, .ico 등에 액세스 할 수 있도록하고 모든 것에 대한 색인으로 리디렉션되지 않습니다.

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]

RewriteCond %{REQUEST_FILENAME} -l [OR]

RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

RewriteRule ^.*$ /index.php [NC,L]

이것이 도움이되기를 바랍니다!

다른 팁

첫 번째 목록에는 디렉토리 태그에 대해 다른 값이 있었으며 '공개'를 모두 꺼냅니다. Docroot 값으로 '공개'후에도 후행 슬래시가 있었지만 두 번째 시도에서 제거되었습니다. 그 차이가 확실하지 않지만 후행 슬래시를 포함하지 않는 것이 좋습니다.

또한 궁금합니다 ... 로컬 컴퓨터에서 이것을 실행하고 있습니까? Apache 서버 전에 실행을 시작하면 Skype가 Port 80을 사용하고 싶어하는 데 어려움을 겪었습니다. 80이 이미 사용 된 경우 Skype가 다른 포트를 사용합니다. Skype가 아닌 경우 Port 80을 사용하고 간섭하는 다른 앱이있을 수 있습니다. 그렇기 때문에 다른 항구에서 성공한 이유 일 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top