首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制非www https模式用于脏目录及其子文件夹。

问强制非www https模式用于脏目录及其子文件夹。
EN

Webmasters Stack Exchange用户
提问于 2018-05-18 09:05:03
回答 1查看 1.8K关注 0票数 1

我的根网站(example.com)及其文件夹(example.com/folder)有两种不同的CMS (Opencart for example.com和WordPress for example.com/folder)。

我在example.com中使用这段代码强制使用非www模式:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

这段代码非常适合example.com及其所有子文件夹,适用于example.com/folder和WordPress CMS。

我该怎么办?

EN

回答 1

Webmasters Stack Exchange用户

回答已采纳

发布于 2018-05-18 10:09:33

您可能希望这些指令也应用于子目录中的WordPress安装--但它目前没有为WordPress做任何事情?

如果您启用了WordPress“漂亮”的permalinks,这就是预期的行为。因为mod_rewrite指令在WordPress .htaccess文件(子目录中)中将完全覆盖父.htaccess文件中的mod_rewrite指令。父mod_rewrite中的.htaccess指令将不会被处理。

您可以使用mod_rewrite继承,但这取决于父.htaccess文件中的其他D3指令以及服务器配置(特别是Apache )。此外,保持OpenCart和WordPress的信任尽可能分开可能是有益的。

最简单的解决方案是在.htaccess文件开始时在WordPress子目录中再现这些指令。但是,您不能在不改变的情况下简单地复制它们,否则在请求www子域时很可能会丢失重定向URL中的子目录。

例如,在example.com/folder/.htaccess文件的顶部尝试以下操作:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule .* https://%1%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} !on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
票数 1
EN
页面原文内容由Webmasters Stack Exchange提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webmasters.stackexchange.com/questions/115207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档