404 erreur pour mod_rewrite en utilisant SSL et MAMP
-
16-09-2019 - |
Question
Je construis une application dans Zend Framework au moment et de tester tout localement. Je Mamp Pro comme mon serveur web et j'ai un SSL auto-signé qui tout semble fonctionner. Mon problème vient quand je tente de faire mod_rewrite -. Je viens d'obtenir 404 pages
La façon dont j'ai des choses mises en place (qui ne peut être la meilleure façon ...)
Mamp j'ai 2 virtualhosts mis en place à la fois pointant vers le même répertoire web (Webroot / public /):
- secure.myapp.com
- myapp.com
Dans mon répertoire public est mon fichier index.php et mon fichier .htaccess. Le contenu du fichier .htaccess sont:
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]
Quand je visite http://myapp.com tout itinéraires comme il devrait en utilisant le mod_rewrite. Mais quand je vais https://secure.myapp.com la page d'index est très bien, mais les arrêts de routage d'URL travail et il semble être que le fichier .htaccess est ignoré.
Dans mon ssl.conf je suit:
<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>
Quelqu'un a des idées sur ce sujet? Je serai sooooo reconnaissant de l'aide qu'il est entrave sérieusement mon développement!
La solution
Eh bien, je suis sûr que je l'ai obtenu ce travail. En gros, un gros problème est que j'avais Mamp ne stocke pas vhosts.conf comme un fichier accessible. Au lieu de cela est un fichier d'application crénelage.
Je pense que ce qui se passe est que les serveurs virtuels sont tous créés dynamiquement tous sur le port http standard, dans mon cas 80. Cependant je devais être en mesure d'accéder au port 433 config vhost pour permettre FileInfo. Donc, ma solution est de fossé mon fichier .htaccess et coller le suivant ALL dans mon fichier 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>
Je devais ajouter DOCUMENT_ROOT devant mon dossier et vérifie d'annuaire, et une barre oblique devant index.php. Si je aurais pu mettre cela en un « répertoire » Je pense que je aurais pu éviter ces changements, mais Apache ne redémarre pas quand j'ajoute ce paramètre.
La seule chose que je n'ai pas essayé ajoutait l'information au httpd.conf MAMP, mais je sens les mêmes restrictions peuvent être mises en place.