Pergunta

Eu estou construindo um aplicativo no Zend Framework no momento e testar tudo localmente. Eu tenho Mamp Pro como meu servidor web e eu tenho um SSL auto-assinado que tudo parece funcionar. Meu problema surge quando eu tento fazer mod_rewrite -. Acabei de receber 404 páginas

A maneira que eu tenho coisas criadas (que pode não ser a melhor maneira ...)


Em Mamp tenho 2 VirtualHosts configurar ambos apontando para o mesmo diretório web (webroot / public /):

  • secure.myapp.com
  • myapp.com

No meu diretório público é meu arquivo index.php e meu arquivo .htaccess. O conteúdo do arquivo .htaccess são:

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]

Quando eu visito http://myapp.com tudo rotas como deve usar o mod_rewrite. Mas quando vou para https://secure.myapp.com a página do índice é bom, mas URL roteamento paradas trabalhando e parece ser que o arquivo .htaccess está sendo ignorada.

Na minha ssl.conf eu tenho a seguinte:

<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 you@example.com
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>

Alguém tem alguma idéia sobre isso? Eu vou ser muuuito apreciam a ajuda, como é dificultar seriamente o meu desenvolvimento!

Foi útil?

Solução

Bem, eu tenho certeza que eu tenho este trabalho. Basicamente, um grande problema que tive é que Mamp não armazena vhosts.conf como um arquivo acessível. Em vez este é um arquivo de aplicativo alias.

Eu acho que o que acontece é que os VirtualHosts são criados todos os dinamicamente todos na porta http padrão, no meu caso 80. No entanto eu precisava para ser capaz de acessar o vhost de configuração porta 433 para permitir FileInfo. Assim, a minha solução é abandonar meu arquivo .htaccess e cumpri o seguinte ALL no meu arquivo 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 you@example.com
    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>

Eu tive que adicionar DOCUMENT_ROOT na frente do meu arquivo e verifica diretório, e uma barra na frente de index.php. Se eu poderia ter colocado isso em um "Diretório", então eu acho que eu poderia ter evitado essas mudanças, mas Apache não irá reiniciar quando eu adicionar esse parâmetro.

A única coisa que eu não tente foi acrescentando a informação de MAMP de httpd.conf, mas eu tenho um sentimento as mesmas restrições podem estar no lugar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top