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!

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top