error 404 para mod_rewrite usando SSL y MAMP
-
16-09-2019 - |
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!
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.