0

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

我需要的:

  1. 让现行规则继续有效
  2. 如果 url 在 https 中,用 http (301) 重写它,除了 3 页(bookingstep1、bookingstep2、bookingsep3)

我很讨厌 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* 页面:(

请帮忙!谢谢!

4

2 回答 2

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]
于 2013-07-31T19:35:40.567 回答
0

全部重定向httpshttp

代码:

重写引擎开启
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} 开启
重写规则 ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
重写规则 ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
重写规则。/index.php [L]

有关更多详细信息,请参见此处

于 2016-02-25T05:14:45.433 回答