发布通配符SSL,但仍无法将https与子域一起使用。
主域名与http和https都正常,但子域只适用于http
和https:// {subdomain}。{domain} .com 生成404错误
.htaccess代码是:
<IfModule mod_rewrite.c>
RewriteEngine on
# Turn on HTTPS
RewriteCond %{HTTPS} on
RewriteRule (.*) https://subdomain.domain.com?/$1 [L,QSA]
RewriteRule ^([a-z0-9_-]+)\.html$ index.php/page/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|asset|robots\.txt)
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]
</IfModule>
提前致谢!
答案 0 :(得分:0)
# Turn on HTTPS RewriteCond %{HTTPS} on RewriteRule (.*) https://subdomain.domain.com?/$1 [L,QSA]
您的“强制HTTPS”指令无效。这看起来可能会导致404(否则,它会导致重定向循环)。上述指令将请求重定向到查询字符串,清除URL路径。 ?
看起来错位了。 (顺便说一下,这与你在下面的重写中所做的类似 - 但这是非常不同的。)
暂时尝试完全删除这些指令。你还得到404吗?
上面应该写成:
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://subdomain.domain.com/$1 [R,L]
(仅当您确定它正常工作时才将R
更改为R=301
。)
RewriteRule ^([a-z0-9_-]+)\.html$ index.php/page/$1 [L] : RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA]
旁白:这些重写也不一致。第一个使用路径信息在内部重写。第二个重写为查询字符串。你应该做其中一个,而不是两个(除非这是两个不同系统的混搭)?