我有什么
感谢this discussion我已在.htaccess
中解决了“始终使用https”重定向的问题:
# Redirect to httpS by default
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Redirect to www if third level domain is not set
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
我想要什么
根据当前配置,https://example.com
已正确重定向到https://www.example.com
。
但我需要,如果网址包含wp-admin
,则不会将其重定向到www
。
因此,例如,https://example.com/wp-admin
不得重定向。
此外,路径wp-admin
的每个子页面都不会被重定向。
https://example.com/wp-admin/login.php
必须是可见的,无需重定向到www
,但可以从二级域名重定向。
上下文(如果您对我为何需要此配置感到好奇)
我有域example.com
。
此域名包含一些第三级域名,并在example.com
(第二级)拥有Wordpress管理区域:
example.com
www.example.com
help.example.com
another.example.com
但是
www.example.com
是一个在Heroku上运行的Symfony应用程序; example.com
是一个在DigitalOcean上运行的Wordpress多站点安装; help.example.com
和another.example.com
是使用多字符example.com
处理的Wordpress网站出于这些原因,如果路径中没有www
,我需要将第二级域重定向到wp-admin
。在所有其他情况下,我需要重定向到www
。
答案 0 :(得分:1)
您想要重定向" http到https" ? 把它放在htaccess中
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
答案 1 :(得分:0)
好的,就像添加第二个RewriteCond
一样简单。
完整的.htaccess
就是:
# Aerendir - Force SSL
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Then redirect to www
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{REQUEST_URI} !wp-admin [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]