https和http合并.htaccess(不同的问题)

时间:2013-01-25 04:18:29

标签: wordpress .htaccess ssl https woocommerce

行。希望有人可以帮我提出建议 -

  1. 我有一个使用子文件夹的WordPress多站点
  2. 我正在使用WooCommerce
  3. 我有一个安装了GoDaddy证书的std Ubuntu 12.04 / LAMP服务器
  4. 如果它启用SSL,它会影响我的整个域(显然),所以我的主站点最终会: 'https://main-sitename.com'

    我的多站点博客也出现了: https://main-sitename.com/blogname-1 https://main-sitename.com/blogname-2

    等等。我的所有菜单链接都是https,它会禁用外部链接,因为所有网址都以https为前缀。 : - /

    我想做的是得到这个:

    http://main-sitename.com http://main-sitename.com/blogname-1 http://main-sitename.com/blogname-2

    https://main-sitename.com/shop/(WooCommerce将在结帐时强制使用HTTPS,然后在完成后取消强制执行)。

    • 那么,任何人都对如何解决这个问题有任何想法?有趣的是,当我在Rackspace Cloud Sites上拥有完全相同的网站时,一切正常。当我搬到自我管理的Cloudserver时,发生了这种情况。有没有我错过的东西?

1 个答案:

答案 0 :(得分:0)

听起来已经为整个服务器设置了SSLRequireSSL。因为您只想在/ shop /目录上强制执行HTTPS。在该目录中添加一个.htaccess文件,其中包含:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这将强制任何通过http://连接到您商店的人被重定向到相同的URI,但是在https://

编辑2

这对我有用(www.myserver.com更改为我的真实服务器名称)。我在WP中使用日期和名称永久链接。我一转到http://www.myserver.com/shop/,我就被重定向到https。它保留了URI。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
# Addition to force redirect to https when they visit the shop!
RewriteBase /
RewriteCond %{HTTPS} !on
RewriteRule (shop/.*$) https://www.myserver.com/$1 [R=301,L]
# Back to WordPress changes
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress