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



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

设置:

  • 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

这似乎适用于domain.com,但不适用于domain.com/folder2:虽然在那里强制执行https,但www重定向不起作用。

我尝试在domain.com/folder2中放置第二个.htaccess文件;这也无济于事。

问题:

  • 如何使这些规则也适用于domain.com/folder2
  • 我已经将WordPress块分开,因为WordPress可能会在通过管理员更改永久链接时复制它,并且它不会按原样找到此块。这是正确的,还是有更好的方法来合并这两个块?

谢谢!

在/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 如果你想把它放在你的根目录中。

相关内容

最新更新