2009-09-24 7 views
2

현재 Zend Framework에 응용 프로그램을 빌드하고 로컬에서 테스트하고 있습니다. 저는 Mamp Pro를 웹 서버로 사용하고 있으며 자체 서명 된 SSL을 사용하고 있습니다. mod_rewrite를하려고 할 때 내 문제가 발생한다 - 나는 단지 404 페이지를 얻는다.SSL과 MAMP를 사용하는 mod_rewrite에 404 오류가 발생했습니다.

내가 설정 한 것을 가지고하는 방법 (가장 좋은 방법이 될 수 없습니다 ...) 나는 모두 같은 웹 디렉토리를 가리키는 설정이 버추얼 호스트가 MAMP에서


(웹 루트/공공 /) :

  • secure.myapp.com
  • 내 공개 디렉토리에서 myapp.com

내 산업사입니다 ex.php 파일과 .htaccess 파일. htaccess로 파일의 내용은 다음과 같습니다

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] 

는 mod_rewrite를를 사용한다 나는이 http://myapp.com 모든 경로를 방문 할 때. 그러나 https://secure.myapp.com으로 가면 색인 페이지가 정상이지만 URL 라우팅이 작동을 멈추고 .htaccess 파일이 무시되는 것처럼 보입니다.

<IfModule mod_ssl.c> 

Listen 443 
AddType application/x-x509-ca-cert .crt 
AddType application/x-pkcs7-crl .crl 
SSLPassPhraseDialog builtin 
SSLSessionCache   dbm:/Applications/MAMP/logs/ssl_scache 
SSLSessionCacheTimeout 300 
SSLMutex file:/Applications/MAMP/logs/ssl_mutex 

<VirtualHost _default_:443> 

SSLEngine on 
DocumentRoot "/webroot/public" 
ServerName secure.myapp.com 
ServerAdmin [email protected] 
ErrorLog /Applications/MAMP/logs/ssl_error_log 
TransferLog /Applications/MAMP/logs/ssl_access_log 

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 
SSLCertificateFile /Applications/MAMP/conf/apache/ssl_cert/server.crt 
SSLCertificateKeyFile /Applications/MAMP/conf/apache/ssl_key/server.key 

CustomLog /Applications/MAMP/logs/ssl_request_log \ 
      "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 

</VirtualHost> 

</IfModule> 

아무도 여기에 대한 아이디어가 있습니까 : 나는 다음과 같은 한 내 ssl.conf에서

? 나는 그것이 진지하게 나의 발달을 방해하고있는 것에 따라 도움에 감사하고있는 sooooo 일 것이다!

+0

해당 디렉토리에'AllowOverride FileInfo'를 설정 했습니까? 그리고 오류 로그를 살펴 보았습니까? – Gumbo

+0

검보, 내 문제는 내가 MAMP를 사용하여 디렉터리 특정 재정의를 설정할 수 없다는 것입니다. 포트 443에서 수신 대기중인 VirtualHost에 을 설정해야하지만 MAMP를 시도하면 Apache를 시작하지 못하게됩니다. 내 주위를 돌아 다녔던 것 같아. 내 대답을 보라. – wiseguydigital

답변

0

글쎄, 나는이 기능을 가지고 있다고 확신한다. 기본적으로 내가 가진 큰 문제는 Mamp가 vhosts.conf를 액세스 가능한 파일로 저장하지 않는다는 것입니다. 대신 앨리어싱 된 응용 프로그램 파일입니다.

내 생각에 가상 호스트가 모두 표준 http 포트에 동적으로 만들어 졌다고 생각합니다. 그렇지만 FileInfo를 사용하려면 포트 433 vhost config에 액세스 할 수 있어야했습니다. 그래서 제 해결 방법은 내 .htaccess 파일을 버리고 다음의 모든 것을 내 ssl.conf 파일에 붙여 넣는 것입니다.

<IfModule mod_ssl.c> 

Listen 443 
AddType application/x-x509-ca-cert .crt 
AddType application/x-pkcs7-crl .crl 
SSLPassPhraseDialog builtin 
SSLSessionCache   dbm:/Applications/MAMP/logs/ssl_scache 
SSLSessionCacheTimeout 300 
SSLMutex file:/Applications/MAMP/logs/ssl_mutex 

<VirtualHost mysite.com:443> 

    SSLEngine on 
    DocumentRoot /webroot/secure 
    ServerName mysite.com 
    ServerAdmin [email protected] 
    ErrorLog /Applications/MAMP/logs/ssl_error_log 
    TransferLog /Applications/MAMP/logs/ssl_access_log 

    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL 
    SSLCertificateFile /Applications/MAMP/conf/apache/ssl_cert/server.crt 
    SSLCertificateKeyFile /Applications/MAMP/conf/apache/ssl_key/server.key 

    CustomLog /Applications/MAMP/logs/ssl_request_log \ 
       "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" 

    DirectoryIndex index.php 

     <IfModule mod_rewrite.c> 
      RewriteEngine on 
      RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -s [OR] 
      RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -l [OR] 
      RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d 

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

      RewriteLog /Applications/MAMP/logs/ssl_rewrite_log 
      RewriteLogLevel 3 
     </IfModule> 

</VirtualHost> 

</IfModule> 

나는 내 파일 및 디렉토리 검사 및 index.php를 앞에 슬래시 앞에 DOCUMENT_ROOT를 추가했다. 이것을 "디렉토리"에 넣을 수 있다면 이러한 변경을 피할 수 있었지만이 매개 변수를 추가하면 Apache가 다시 시작되지 않는다고 생각합니다.

내가 시도하지 않은 유일한 이유는 MAMP의 httpd.conf에 정보를 추가하는 것이었지만 같은 제한이 적용될 수 있다는 느낌이 들었습니다.

관련 문제