Domanda

Sto costruendo un app in Zend Framework in questo momento e testare il tutto a livello locale. Ho Mamp Pro come il mio server web e ho uno SSL self-signed, che tutto sembra funzionare. Il mio problema viene quando provo a fare mod_rewrite -. Ho appena ottenere 404 pagine

Il modo in cui ho impostato le cose (che non può essere il modo migliore ...)


In Mamp Ho 2 VirtualHosts impostati sia che punta alla stessa directory web (webroot / public /):

  • secure.myapp.com
  • myapp.com

Nel mio elenco pubblico è il mio file index.php e il mio file .htaccess. Il contenuto del file .htaccess sono:

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 visito http://myapp.com percorsi tutto come si deve utilizzare il mod_rewrite. Ma quando vado a https://secure.myapp.com la pagina indice va bene, ma si ferma URL di routing lavorare e sembra essere che il file .htaccess viene ignorato.

Nel mio ssl.conf ho il seguente:

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

Qualcuno ha qualche idea su questo? Sarò tremendamente apprezzato l'aiuto come è seriamente ostacolare il mio sviluppo!

È stato utile?

Soluzione

Beh, io sono abbastanza sicuro che ho ottenuto questo lavoro. In sostanza, un grosso problema che ho avuto è che Mamp non memorizza vhosts.conf come un file accessibile. Invece si tratta di un file di applicazione alias.

Credo che ciò che accade è che i VirtualHosts sono creati tutti in modo dinamico tutti sulla porta HTTP standard, nel mio caso 80. Tuttavia avevo bisogno di essere in grado di accedere al vhost config porta 433 per consentire FileInfo. Così la mia soluzione è quella di abbandonare il mio file .htaccess e bastone il seguente ALL nel mio file 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>

ho dovuto aggiungere DOCUMENT_ROOT davanti al mio di file e controlli di directory, e una barra di fronte index.php. Se avessi potuto mettere questo in un "Directory", allora credo che avrei potuto evitare questi cambiamenti, ma Apache non si riavvia quando aggiungo questo parametro.

L'unica cosa che non ho provato è stata l'aggiunta di informazioni di httpd.conf di MAMP, ma ho la sensazione che le stesse restrizioni possono essere a posto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top