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