Pregunta

Estoy construyendo una aplicación en Zend Framework en el momento y probar todo a nivel local. Tengo Mamp Pro como mi servidor web y tengo una autofirmado, que todo parece funcionar. Mi problema viene cuando intento hacer mod_rewrite -. Acabo de obtener 404 páginas

La forma en que he creado las cosas (que puede no ser la mejor manera ...)


En Mamp tengo 2 VirtualHosts establecieron tanto apuntan al mismo directorio web (Webroot / public /):

  • secure.myapp.com
  • myapp.com

En mi directorio público es mi archivo index.php y mi archivo .htaccess. El contenido del archivo .htaccess son:

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]

Cuando visito http://myapp.com rutas todo como debe usar el mod_rewrite. Pero cuando voy a https://secure.myapp.com la página de índice está muy bien, pero se detiene URL de enrutamiento de trabajo y parece ser que el archivo .htaccess está siendo ignorada.

En mi ssl.conf Tengo el siguiente:

<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>

¿Alguien tiene alguna idea sobre esto? Voy a ser increíblemente agradecido por la ayuda, ya que está obstaculizando seriamente el desarrollo de mi!

¿Fue útil?

Solución

Bueno, yo estoy bastante seguro de que tengo este trabajo. Básicamente, un gran problema que tuve es que no almacena Mamp vhosts.conf como un archivo accesible. En su lugar se trata de un archivo de aplicación de alias.

Creo que lo que sucede es que los VirtualHosts se crean dinámicamente todos en todo el puerto HTTP estándar, en mi caso 80. Sin embargo, yo tenía que ser capaz de acceder a la configuración de host virtual puerto 433 para permitir FileInfo. Así que mi solución es deshacerse de mi archivo .htaccess y pegar el siguiente TODO en mi archivo 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>

he tenido que añadir DOCUMENT_ROOT delante de mi archivo y cheques de directorio, y una barra inclinada frente a index.php. Si hubiera podido poner esto en un "directorio", entonces yo creo que podría haber evitado estos cambios, pero Apache no se reiniciará cuando agrego este parámetro.

La única cosa que no me trato fue añadiendo la información a httpd.conf de MAMP, pero tengo la sensación de las mismas restricciones pueden estar en su lugar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top