将http转发到MAMP中某个文件夹上的https



所以我为我的网站创建了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。我的证书是正确的,所以这不是问题所在。

非常感谢您的帮助。

提前感谢!

在重写中添加第二个条件,以便只有在该条件为true时才应用它。这也允许您提取请求的必需部分:

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

最新更新