我的域的根成功重定向到子目录,这意味着example.com
重定向到example.com/abc
.
example.com
没有安装WordPress。
example.com/abc
有自己的WordPress安装。
主页位于http://example.com/abc
不是HTTPS,我也不希望它是HTTPS,但是,我确实希望所有子页都是HTTPS(例如。https://example.com/abc/xyz
或https://example.com/abc/thistoo
)
我的当前.htaccess
文件是标准的WordPress文件。。。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /abc/
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /abc/index.php [L]
</IfModule>
# END WordPress
我已经检查并尝试了许多我在这里找到的其他解决方案,但到目前为止没有任何乐趣。
p、 我知道在对.htaccess
文件
最合适的回答,由SO网友:MrWhite 整理而成
大概是你的.htaccess
文件位于/abc
子目录?在这种情况下,您可以执行以下操作,在除主页外的所有子页面上强制使用HTTPS:
这需要在你的.htaccess
文件:
RewriteCond %{HTTPS} !on
RewriteRule !^(index\\.php)?$ https://example.com%{REQUEST_URI} [R=302,L]
这假设SSL证书直接安装在应用程序服务器上。
否定的RewriteRule
图案!^(index\\.php)?$
仅匹配非空(或非空index.php
) URL路径,因此这不包括主页。
更改302
(临时)至301
(永久)只有在您确定它工作正常时,才能避免缓存问题。测试前请清除浏览器缓存。
旁白:
RewriteBase /abc/
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /abc/index.php [L]
由于您已设置
RewriteBase
指令,您可以从
RewriteRule
替换(这是RewriteBase
指令执行):RewriteRule . index.php [L]
然而,由于.htaccess
文件位于/abc
子目录,那么您实际上不需要RewriteBase
指令或目录前缀。