我的根网站(example.com)及其文件夹(example.com/folder)有两种不同的CMS (Opencart for example.com和WordPress for example.com/folder)。
我在example.com中使用这段代码强制使用非www模式:
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。
我该怎么办?
发布于 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文件的顶部尝试以下操作:
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]https://webmasters.stackexchange.com/questions/115207
复制相似问题