在 MAMP 中的文件夹上将 http 转发到 https
Forward http to https on a folder in MAMP
所以我为我的网站创建了一个 SSL 密钥和一个证书。通过在 httpd-vhosts.conf
:
中使用以下代码,我能够将我网站的每个页面转发到 HTTPS
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
这对每个页面都适用,但我希望能够仅在我的帐户页面上将 http 转发到 https。我在 https-vhosts.conf
:
中尝试了这段代码
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Website/Account"
ServerName example.com
ServerAlias www.example.com/Account
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
# SSL Configuration
<VirtualHost *:443>
DocumentRoot "/Applications/MAMP/htdocs/Website/Account"
ServerName example.com
ServerAlias www.example.com/Account
SSLEngine on
SSLCertificateFile /Applications/MAMP/conf/apache/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/apache/server.key
</VirtualHost>
它不会重定向到 https,它只是保持标准的 http。我的证书是正确的,所以这不是问题。
非常感谢任何帮助。
提前致谢!
为您的重写添加第二个条件,以便只有在该条件为真时才应用它。这也允许您提取请求的所需部分:
# http Configuration
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} ^/Account
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
DocumentRoot "/Applications/MAMP/htdocs/Website"
<Directory /Applications/MAMP/htdocs/Website>
[...]
</Directory>
</VirtualHost>
# SSL Configuration
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /Applications/MAMP/conf/apache/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/apache/server.key
DocumentRoot "/Applications/MAMP/htdocs/Website"
<Directory /Applications/MAMP/htdocs/Website>
[...]
</Directory>
</VirtualHost>
所以我为我的网站创建了一个 SSL 密钥和一个证书。通过在 httpd-vhosts.conf
:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
这对每个页面都适用,但我希望能够仅在我的帐户页面上将 http 转发到 https。我在 https-vhosts.conf
:
<VirtualHost *:80>
DocumentRoot "/Applications/MAMP/htdocs/Website/Account"
ServerName example.com
ServerAlias www.example.com/Account
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>
# SSL Configuration
<VirtualHost *:443>
DocumentRoot "/Applications/MAMP/htdocs/Website/Account"
ServerName example.com
ServerAlias www.example.com/Account
SSLEngine on
SSLCertificateFile /Applications/MAMP/conf/apache/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/apache/server.key
</VirtualHost>
它不会重定向到 https,它只是保持标准的 http。我的证书是正确的,所以这不是问题。
非常感谢任何帮助。
提前致谢!
为您的重写添加第二个条件,以便只有在该条件为真时才应用它。这也允许您提取请求的所需部分:
# http Configuration
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} ^/Account
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
DocumentRoot "/Applications/MAMP/htdocs/Website"
<Directory /Applications/MAMP/htdocs/Website>
[...]
</Directory>
</VirtualHost>
# SSL Configuration
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /Applications/MAMP/conf/apache/server.crt
SSLCertificateKeyFile /Applications/MAMP/conf/apache/server.key
DocumentRoot "/Applications/MAMP/htdocs/Website"
<Directory /Applications/MAMP/htdocs/Website>
[...]
</Directory>
</VirtualHost>