我已经在上安装了两个WordPress实例https://www.example.com/
和一个子目录https://www.example.com/blogs/
现在,为了将所有HTTP URL重定向到HTTPS版本,我在中添加了以下指令.htaccess
在根文件夹中,如下所示:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
这适用于根文件夹下的所有URL,但根文件夹下的URL除外/blogs/
子文件夹。我尝试修改.htaccess
在下面/blogs/
再次添加上述指令。但这不起作用。为什么?
我认为指令在`。htaccess由子文件夹继承,为什么它不适用于/blogs/
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/blogs/$1 [L,R=301,NC]
实际上,我已经试过了,但也没有成功。Update:
现在让我举一个例子来更清楚地解释这一点:对于URL,例如http://www.example.com/outlook-repair/
, 它CAN 被重定向到https版本https://www.example.com/outlook-repair/
正确地
但是,对于下面的URL/blogs/
子文件夹,例如http://www.example.com/blogs/2-useful-methods-to-recover-outlook-data-from-a-damaged-disk-image-file
, 它CANNOT 被重定向到https版本,您得到的仍然是HTTP版本。这就是问题所在。
Update
以下是/blogs/.htaccess
, 为了简化操作,我禁用了WP Fastest Cache插件:# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blogs/
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blogs/index.php [L]
</IfModule>
# END WordPress
# Wordfence WAF
<Files ".user.ini">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
</IfModule>
</Files>
# END Wordfence WAF
Update 2
我尝试为主站点和博客站点设置重定向插件的站点选项,如中所述https://redirection.me/support/site-options/ , ubt也仍然不起作用。