将所有https重定向到http,除了3页[htaccess / php]

时间:2013-07-31 17:50:23

标签: wordpress .htaccess http redirect https

运行wordpress网站,因此它已经有自己的规则从链接中删除index.php。此外,每次在URL中都有“cache_img”时,都会应用特定的规则。

我需要什么:

  1. 以使当前规则继续有效
  2. 如果网址为https,请使用http(301)重写,不包括3页(bookingstep1,bookingstep2,bookingsep3)
  3. 我对htaccess感到厌烦,对我来说几乎没有任何意义,我希望有人可以帮助我。我对htaccess或php解决方案持开放态度。

    这就是我现在所拥有的(它可能已经有错误......)

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/(cache_img) [NC]
    RewriteRule . /index.php [L]
    RewriteRule ^cache_img/(.*)x(.*)-(.*)/r/(.*) cache_img/tt.php?src=http://mydomain.com/$4&w=$1&h=$2&zc=$3&q=100
    

    我尝试在htaccess的顶部添加:

    RewriteCond %{HTTPS} on
    Rewritecond %{REQUEST_URI} !^bookingstep(1|2|3)\/?$ [NC]
    RewriteRule ^(.*) http://mydomain.com/$1 [R=301,L]
    

    适用于所有页面...它会删除https并使用http重写它们。 但它也重写了bookinstep *页面:(

    请帮忙!谢谢!

2 个答案:

答案 0 :(得分:0)

给这个插件一个:

  

http://wordpress.org/plugins/wordpress-https

我个人经常使用它。您可以将每个页面设为https,也可以进入单独的页面/帖子,只需将这些页面/帖子单独保护即可。

  

修改

RewriteEngine on
RewriteCond %{SERVER_PORT} =80
RewriteRule ^bookingstep1/?$ https://URL HERE/bookingstep1[R=301,QSA,L,NE]
RewriteRule ^bookingstep2/?$ https://URL HERE/bookingstep2[R=301,QSA,L,NE]
RewriteRule ^bookingstep3/?$ https://URL HERE/bookingstep3[R=301,QSA,L,NE]

答案 1 :(得分:0)

将所有https重定向到http

代码:

RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} on
RewriteRule  ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

有关详细信息,请参阅here