我在主域和一些不相关的附加域上安装了 wp。 我安装了非常简单的 ssl 插件来处理我网站发出的所有不安全请求,但所有插件域都受到影响,它们还需要 ssl 证书。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^$ https://www.example.com/$1 [R,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# BEGIN rlrssslReallySimpleSSL rsssl_version[2.2.10]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
</IfModule>
# END rlrssslReallySimpleSSL
没有 Really simple ssl 它工作正常,但是 htaccess 文件的这一部分会影响所有子域。我也尝试添加
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
在 ssl 条件下,但现在所有附加域都重定向到主域。
最佳答案
试试这个 .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /WORDPRESSROOT/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /WORDPRESSROOT/index.php [L]
</IfModule>
# END WordPress
# BEGIN rlrssslReallySimpleSSL rsssl_version[2.2.10]
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
# END rlrssslReallySimpleSSL
将 WORDPRESSROOT 更改为您的 wordpress 所在的文件夹,否则将其删除并将其更改为/index.php
我也使用 Really Simple SSL 但它只影响 .htaccess 所在的文件夹。否则尝试将您的网站移动到/wordpress/并将您的网站重定向到您的根文件夹。
这是文档:
https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory
编辑:首先保存您的旧 .HTACCESS。
关于htaccess 中附加域的 Wordpress SSL 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34284838/