我有一个网站,通过ssl完全servered。 我需要通过http允许在单个页面上的外部连接。
目前在我的http.conf中有
<VirtualHost *:80> .. Redirect permanent / https://www.mysite.com/ .. </VirtualHost>
我想在这里添加一个例外,我只想要一个特定的页面,而不是通过redirect,如果可能的http …
http://www.mysite.com/directory/page.php
我尝试添加以下内容,但是这当然本身工作得很好,但是与上面的内容一起创build了redirect循环。
<VirtualHost *:443> .. RewriteEngine on RewriteCond %{SERVER_PORT} ^443$ RewriteRule ^/directory/page$ http://www.mysite.com/directory/page.php [R=301,L] .. </VirtualHost>
尝试这个:
RewriteEngine on RewriteCond %{HTTPS} on RewriteRule ^/directory/page$ http://www.mysite.com/directory/page.php [R=301,L] RewriteCond %{HTTPS} on RewriteRule ^/directory/page.php http://www.mysite.com/directory/page.php [R,L] RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} !^/directory/page.php RewriteRule ^/(.*) https://www.mysite.com/$1 [R,L]
这是最后的工作:
# Force HTTPS for entire site RewriteCond %{HTTPS} !=on RewriteCond %{THE_REQUEST} !^[AZ]+\s/directory/page.*$ RewriteRule ^(.*)$ https://www.mysite.com/$1 [R=301,L] # Force HTTP for a given page RewriteCond %{HTTPS} =on RewriteCond %{REQUEST_URI} ^/directory/page.*$ RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]