404エラーのためのmod_rewriteは、暗号化(SSL)を用いて、MAMP
-
16-09-2019 - |
質問
構築を行っているアプリZend Frameworkの試験です。していまMampプロとしての自分のウェブサーバとして自己署名SSLを全うします。私の問題がってみてはいmod_rewrite-乗っ404ページ。
のものの設定がないことに...)
にMampい2virtualhostsの設定の両方を指すに同一のウェブディレクトリ(webrootウェブルート公共):
- secure.myapp.com
- myapp.com
私の公開ディレクトリは私のindex.php ファイルおよびmy.htaccessファイルです。。htaccessファイル:
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]
私が訪問 http://myapp.com 全ての経路では使用できます。mod_rewriteでに行った時に https://secure.myapp.com のインデックスページですがURLのルーティングが停止できる。htaccessファイルは無視されます。
私のボタンを使用します。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 _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>
なんてそのアイデア。んなアトランタのアルファレッタ周辺に感謝の気持ちを持つのかを真剣に阻害発!
解決
さて私は、私はこの作業を持っていることを確信しています。基本的に、私が持っていた大きな問題は、MAMPがアクセス可能なファイルとしてvhosts.conf保存しないということです。代わりに、これはエイリアスアプリケーションファイルです。
私は何が起こることは仮想ホストがすべての動的しかし、私はFileInfoオブジェクトを有効にするには、ポート433のバーチャルホストの設定にアクセスできるようにするために必要な私の場合80には、標準のHTTPポート上のすべてを作成していることだと思います。だから私の回避策は、私の.htaccessファイルを捨てて、私の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>
私は自分のファイルとディレクトリのチェック、index.phpの目の前にあるスラッシュの前にDOCUMENT_ROOTを追加する必要がありました。私は「ディレクトリ」にこれを入れていることができれば、私は、私はこれらの変更を避けることができたと思うが、私は、このパラメータを追加するときにApacheは再起動しません。
私は試していない唯一のものはMAMPのhttpd.confに情報を追加しましたが、私は同じ制限が所定の位置にあってもよい感じています。