【发布时间】:2015-04-06 11:22:44
【问题描述】:
我一直在尝试使用 apache .htaccess 规则来强制所有网址为https://www.
对于那些略过这个,请记住,由于多种原因,我不能在重写规则中使用“domain.com”。
例如:
https://domain.com to https://www.domain.comhttp://domain.com to https://www.domain.comhttp://www.domain.com to https://www.domain.com
但是……
在我的情况下,我有这么多域(由于是一个 wordpress 多站点),为每个单独的域添加规则确实效率低下。而且由于我在网络模式下使用wordpress MS,我有一些映射到基本url的站点,尤其是在尝试以mod重写以外的方式强制https时,这些站点似乎很容易崩溃..那么我需要确保所有域使用 www,但 MU 域映射不会从网络模式强制根站点使用 www ...这是一种允许通过 wp 多网络插件将站点分离到网络中的模式。所以这意味着我需要通过 mod 重写来强制执行此操作。
我在网上找到了这些变体,但我不确定最干净的方法是什么?
## force HTTPS and www RewriteCond %{HTTP_HOST} (?!^www\.)^(.+)$ [OR] RewriteCond %{HTTPS} off RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^(dev|www)\. [NC] RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI}/ [R=302,L] RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI}/ [R=302,L]
RewriteCond %{HTTP_HOST} !^www\. [NC,OR] RewriteCond %{HTTPS} off RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI}/ [R=302,L]
完成此任务的最佳方法是什么? 谢谢
【问题讨论】:
标签: wordpress .htaccess mod-rewrite