除了一个页面以外的所有内容都重写https的条件

时间:2013-05-28 21:55:50

标签: php apache mod-rewrite

如何重写我的配置文件,以便除了一个页面外,所有内容都将转到https?到目前为止,我在我的conf文件中有这个

NameVirtualHost *:443

<VirtualHost *:80>
    DocumentRoot /var/www/mysite
    ServerName mysite.dev
    ServerAlias www.mysite.dev
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
    ErrorLog /var/log/mysite.dev-error_log
    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

<VirtualHost *:443>
    DocumentRoot /var/www/mysite
    ServerName mysite.dev
    ServerAlias www.mysite.dev
    SSLEngine on
    SSLCertificateFile /var/www/mysite.crt
    SSLCertificateKeyFile /var/www/mysite.key
    ErrorLog /var/log/mysite.dev-error_log
    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

使用我当前的设置,所有内容都将重定向到https。但我有一个页面,其中提交按钮进入一个http网站,它会以某种方式导致问题。 该表单的链接将是&#34; mysite.dev/pages/sign_up"

反正只有这个页面不是http吗?

1 个答案:

答案 0 :(得分:0)

也许这有效:

RewriteCond %{HTTPS} off
# Insert next line
RewriteCond %{REQUEST_URI} !/pages/sign_up [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]