强制https+;WordPress和非WordPress子目录中的www

强制https+;WordPress和非WordPress子目录中的www,wordpress,apache,.htaccess,mod-rewrite,Wordpress,Apache,.htaccess,Mod Rewrite,我需要使用.htaccess强制https和www,我正在寻找一种解决方案,它不是特定于域的,但将应用于任何域和任何文件夹(使用服务器变量) 设置: domain.com安装了WordPress domain.com/folder2是一个物理文件夹,包含一个单独的站点 domain.com中的.htaccess文件当前包含: # force www+https <IfModule mod_rewrite.c> RewriteEngine On RewriteCon

我需要使用
.htaccess
强制https和www,我正在寻找一种解决方案,它不是特定于域的,但将应用于任何域和任何文件夹(使用服务器变量)

设置:

  • domain.com
    安装了WordPress
  • domain.com/folder2
    是一个物理文件夹,包含一个单独的站点
domain.com
中的.htaccess文件当前包含:

# force www+https
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} !on$ [NC]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#强制www+https
重新启动发动机
重写cond%{HTTPS}!美元[NC]
重写cond%{HTTP_HOST}^www\。[北卡罗来纳州]
重写规则(.*)https://www.%{HTTP_HOST}%{REQUEST_URI}[L,R=301]
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
这似乎适用于
domain.com
,但不适用于
domain.com/folder2
:虽然在那里强制使用https,但www重定向不起作用

我尝试在
domain.com/folder2
中放置第二个.htaccess文件;那也没用

问题:

  • 如何使这些规则也适用于
    domain.com/folder2
  • 我将WordPress块保持为单独的,因为WordPress可能会在通过admin更改永久链接时复制它,但它不会按原样找到此块。这是正确的,还是有更好的方法来巩固这两个区块

谢谢

在/folder2的.htaccess中,添加以下内容:

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www [OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]
如果要将/folder2/.htaccess放入根目录,请删除它