404 Fehler für mod_rewrite mit SSL und MAMP
-
16-09-2019 - |
Frage
Ich baue eine app in Zend Framework zur Zeit und alles vor Ort zu testen. Ich habe Mamp Pro als meine Web-Server, und ich habe ein selbst signiertes SSL, die alle zu funktionieren scheint. Mein Problem kommt, wenn ich versuche, mod_rewrite zu tun -. Ich bekomme nur 404 Seiten
So wie ich die Dinge haben, (die möglicherweise nicht der beste Weg, ...)
In Mamp Ich habe 2 Virtual gründen beide zeigt auf die gleiche Web-Verzeichnis (Webroot / public /):
- secure.myapp.com
- myapp.com
In meinem öffentlichen Verzeichnis ist meine Datei index.php und meine .htaccess-Datei. Der Inhalt der .htaccess-Datei ist:
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]
Wenn ich unter http://myapp.com alles Routen wie es sollte die mod_rewrite. Aber wenn ich an https://secure.myapp.com der Index-Seite ist in Ordnung, aber URL-Routing-Stationen arbeiten und es scheint zu sein, dass die .htaccess-Datei ignoriert wird.
In meinem ssl.conf habe ich folgendes:
<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>
Hat jemand irgendwelche Ideen dazu? Ich werde sooooo dankbar für die Hilfe, da es ernst ist meine Entwicklung zu behindern!
Lösung
Nun, ich bin mir ziemlich sicher, dass ich diese Arbeit bekommen haben. Grundsätzlich ist ein großes Problem, das ich hatte, ist, dass Mamp nicht als begehbares Datei speichert vhosts.conf. Stattdessen ist dies eine aliased Anwendungsdatei.
Ich denke, was passiert ist, dass die Virtual sind alle dynamisch alle auf dem Standard-HTTP-Port erstellt, in meinem Fall 80 aber ich musste in der Lage sein, den Port 433 vhost Konfiguration für den Zugriff auf Fileinfo zu aktivieren. Also meine Abhilfe ist meine .htaccess-Datei, Graben und die folgende ALL in meine ssl.conf Datei bleiben.
<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>
Ich hatte DOCUMENT_ROOT vor meiner Datei- und Verzeichnis prüft und einen Schrägstrich vor index.php hinzuzufügen. Wenn ich das in ein „Verzeichnis“ gesetzt haben könnte, dann denke ich, dass ich diese Änderungen hätte vermieden werden können, aber Apache nicht neu starten, wenn ich diesen Parameter hinzuzufügen.
Das einzige, was ich nicht versucht wurde, die Informationen zu MAMP httpd.conf hinzufügen, aber ich habe ein die gleichen Einschränkungen Gefühl anstelle kann.